openapi: 3.0.1
info:
  title: OpenAPI schema for Edu-API
  description: Edu-API Candidate Final Public
  termsOfService: https://www.imsglobal.org/license.html
  contact:
    name: IMS Global
    url: https://www.imsglobal.org
    email: support@imsglobal.org
  license:
    name: IMS Global Specification Document License
    url: https://www.imsglobal.org/license.html
  version: "1.0"
  x-status: Candidate Final
  x-model-pid: org.1edtech.eduapi.v1p0.model
  x-service-pid: org.1edtech.eduapi.v1p0.rest.servicemodel
  x-src-operation-count: 49
  x-oas-operation-count: 49
servers:
- url: https://example.org/ims/eduapi/base/v1p0
  description: The above Server URL should be changed to the actual server location.
tags:
- name: Education Management
  description: Operations relating to the Abstract Education Resources
- name: Academic Session Management
  description: Operations relating to AcademicSessions
- name: Organization Management
  description: Operations relating to Organizations
- name: Person Management
  description: Operations relating to Persons
- name: Enrollment Management
  description: Operations relating to Enrollments
- name: Affiliation Management
  description: Operations relating to Affiliations
paths:
  /educationTemplates:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getEducationTemplates() API call.
      description: Read all education templates for an institution
      operationId: getEducationTemplates
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getEducationTemplates() API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: A description of an abstract education.
                items:
                  $ref: '#/components/schemas/Education'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.geteducationtemplates.operation
  /educationTemplates/{id}:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getEducationTemplatesById() API call.
      description: Read a collection template with a specific id
      operationId: getEducationTemplatesById
      parameters:
      - name: id
        in: path
        description: The sourcedId of the Education
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "200":
          description: The 200 (OK) response to the getEducationTemplatesById() API
            call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Education'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "404":
          description: "As defined in [[rfc9110]], indicating that the origin server\
            \ did not find a current representation for the target resource or is\
            \ not willing to disclose that one exists."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.geteducationtemplatesbyid.operation
  /educationOfferings:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getEducationOfferings() API call.
      description: Read all education templates for an institution
      operationId: getEducationOfferings
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getEducationOfferings() API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: A description of an abstract educational offering.
                items:
                  $ref: '#/components/schemas/EducationOffering'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.geteducationofferings.operation
  /educationsOfferings/{id}:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getEducationsOfferingById() API call.
      description: Read a collection template with a specific id
      operationId: getEducationsOfferingById
      parameters:
      - name: id
        in: path
        description: The sourcedId of the Education
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "200":
          description: The 200 (OK) response to the getEducationsOfferingById() API
            call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EducationOffering'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "404":
          description: "As defined in [[rfc9110]], indicating that the origin server\
            \ did not find a current representation for the target resource or is\
            \ not willing to disclose that one exists."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.geteducationsofferingbyid.operation
  /collectionTemplates:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getAllCollectionTemplates() API call.
      description: Read all collection templates for an institution
      operationId: getAllCollectionTemplates
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllCollectionTemplates() API
            call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A grouping of educational units. In the context of Edu-API\
                  \ an education is any kind of canonical or non-instantiated learning\
                  \ units that have a structured relationship, e.g. a course. When\
                  \ grouped, these educational units can be used to define such concepts\
                  \ as programs of study."
                items:
                  $ref: '#/components/schemas/CollectionTemplate'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallcollectiontemplates.operation
  /collectionTemplates/{id}:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getCollectionTemplateById() API call.
      description: Read a collection template with a specific id
      operationId: getCollectionTemplateById
      parameters:
      - name: id
        in: path
        description: The sourcedId of the CollectionTemplate
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "200":
          description: The 200 (OK) response to the getCollectionTemplateById() API
            call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionTemplate'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "404":
          description: "As defined in [[rfc9110]], indicating that the origin server\
            \ did not find a current representation for the target resource or is\
            \ not willing to disclose that one exists."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getcollectiontemplatebyid.operation
  /courseTemplates:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getAllCourseTemplates() API call.
      description: Read all course templates for an institution
      operationId: getAllCourseTemplates
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllCourseTemplates() API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A time independent description of a learning experience,\
                  \ such that it may appear in a catalog."
                items:
                  $ref: '#/components/schemas/CourseTemplate'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallcoursetemplates.operation
  /courseTemplates/{id}:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getCourseTemplateById() API call.
      description: Read a course template with a specific id
      operationId: getCourseTemplateById
      parameters:
      - name: id
        in: path
        description: The sourcedId of the CourseTemplate
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "200":
          description: The 200 (OK) response to the getCourseTemplateById() API call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseTemplate'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "404":
          description: "As defined in [[rfc9110]], indicating that the origin server\
            \ did not find a current representation for the target resource or is\
            \ not willing to disclose that one exists."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getcoursetemplatebyid.operation
  /componentTemplates:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getAllComponentTemplates() API call.
      description: Read all component templates for an institution
      operationId: getAllComponentTemplates
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllComponentTemplates() API
            call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A subsection of a Course or Class. It may be a lesson\
                  \ unit within a Class or it may be a separately enrolled unit with\
                  \ a Course. For example, Biology 101 may consist of a Lecture component\
                  \ and a Lab component."
                items:
                  $ref: '#/components/schemas/ComponentTemplate'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallcomponenttemplates.operation
  /componentTemplates/{id}:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getComponentTemplateById() API call.
      description: Read a component with a specific id
      operationId: getComponentTemplateById
      parameters:
      - name: id
        in: path
        description: The sourcedId of the ComponentTemplate
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "200":
          description: The 200 (OK) response to the getComponentTemplateById() API
            call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentTemplate'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "404":
          description: "As defined in [[rfc9110]], indicating that the origin server\
            \ did not find a current representation for the target resource or is\
            \ not willing to disclose that one exists."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getcomponenttemplatebyid.operation
  /collectionOfferings:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getAllCollectionOfferings() API call.
      description: Read all collectionOfferings for an institution
      operationId: getAllCollectionOfferings
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllCollectionOfferings() API
            call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A collection of courses or other learning units, used\
                  \ to group them into a coherent whole for enrollment, administrative,\
                  \ or other purposes. A Program is one example of a Course Collection."
                items:
                  $ref: '#/components/schemas/CollectionOffering'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallcollectionofferings.operation
  /collectionOfferings/{id}:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getCollectionOfferingById() API call.
      description: Read collectionOffering with a specific Id
      operationId: getCollectionOfferingById
      parameters:
      - name: id
        in: path
        description: The sourcedId of the CollectionOffering
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "200":
          description: The 200 (OK) response to the getCollectionOfferingById() API
            call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionOffering'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "404":
          description: "As defined in [[rfc9110]], indicating that the origin server\
            \ did not find a current representation for the target resource or is\
            \ not willing to disclose that one exists."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getcollectionofferingbyid.operation
  /courseOfferings:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getAllCourseOfferings() API call.
      description: Read all courseOfferings for an institution
      operationId: getAllCourseOfferings
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllCourseOfferings() API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: Relates a course to one or more delivery scenarios.
                items:
                  $ref: '#/components/schemas/CourseOffering'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallcourseofferings.operation
  /courseOfferings/{id}:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getCourseOfferingById() API call.
      description: Read courseOffering with a specific Id
      operationId: getCourseOfferingById
      parameters:
      - name: id
        in: path
        description: The sourcedId of the CourseOffering
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "200":
          description: The 200 (OK) response to the getCourseOfferingById() API call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseOffering'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "404":
          description: "As defined in [[rfc9110]], indicating that the origin server\
            \ did not find a current representation for the target resource or is\
            \ not willing to disclose that one exists."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getcourseofferingbyid.operation
  /componentOfferings:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getAllComponentOfferings() API call.
      description: Read all ComponentOfferings for an institution
      operationId: getAllComponentOfferings
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllComponentOfferings() API
            call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A subsection of a courseOffering. It may be a lesson\
                  \ or separately enrollable unit within a courseOffering. For example,\
                  \ Biology 101 may consist of a Lecture component offering and a\
                  \ Lab component offering"
                items:
                  $ref: '#/components/schemas/ComponentOffering'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallcomponentofferings.operation
  /componentOfferings/{id}:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getComponentOfferingById() API call.
      description: Read ComponentOffering with a specific Id
      operationId: getComponentOfferingById
      parameters:
      - name: id
        in: path
        description: The sourcedId of the ComponentOffering
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "200":
          description: The 200 (OK) response to the getComponentOfferingById() API
            call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentOffering'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "404":
          description: "As defined in [[rfc9110]], indicating that the origin server\
            \ did not find a current representation for the target resource or is\
            \ not willing to disclose that one exists."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getcomponentofferingbyid.operation
  /academicSessions/{id}/componentOfferings:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getAllComponentOfferingsBySession()
        API call.
      description: Read all ComponentOfferings in a specified academic session
      operationId: getAllComponentOfferingsBySession
      parameters:
      - name: id
        in: path
        description: The sourcedId of the AcademicSession
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllComponentOfferingsBySession()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A subsection of a courseOffering. It may be a lesson\
                  \ or separately enrollable unit within a courseOffering. For example,\
                  \ Biology 101 may consist of a Lecture component offering and a\
                  \ Lab component offering"
                items:
                  $ref: '#/components/schemas/ComponentOffering'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallcomponentofferingsbysession.operation
  /academicSessions/{id}/courseOfferings:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getAllCourseOfferingsBySession() API
        call.
      description: Read all CourseOfferings in a specified academic session
      operationId: getAllCourseOfferingsBySession
      parameters:
      - name: id
        in: path
        description: The sourcedId of the AcademicSession
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllCourseOfferingsBySession()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: Relates a course to one or more delivery scenarios.
                items:
                  $ref: '#/components/schemas/CourseOffering'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallcourseofferingsbysession.operation
  /academicSessions/{id}/collectionOfferings:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getAllCollectionOfferingsBySession()
        API call.
      description: Read all CollectionOfferings in a specified academic session
      operationId: getAllCollectionOfferingsBySession
      parameters:
      - name: id
        in: path
        description: The sourcedId of the AcademicSession
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllCollectionOfferingsBySession()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A collection of courses or other learning units, used\
                  \ to group them into a coherent whole for enrollment, administrative,\
                  \ or other purposes. A Program is one example of a Course Collection."
                items:
                  $ref: '#/components/schemas/CollectionOffering'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallcollectionofferingsbysession.operation
  /students/{id}/collectionOfferings:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getCollectionOfferingsForStudent() API
        call.
      description: Read all collectionOfferings for a student
      operationId: getCollectionOfferingsForStudent
      parameters:
      - name: id
        in: path
        description: The sourcedId of the Person representing the student
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getCollectionOfferingsForStudent()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A collection of courses or other learning units, used\
                  \ to group them into a coherent whole for enrollment, administrative,\
                  \ or other purposes. A Program is one example of a Course Collection."
                items:
                  $ref: '#/components/schemas/CollectionOffering'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getcollectionofferingsforstudent.operation
  /staff/{id}/collectionOfferings:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getCollectionOfferingsForStaff() API
        call.
      description: Read all collectionOfferings for a staff member
      operationId: getCollectionOfferingsForStaff
      parameters:
      - name: id
        in: path
        description: The sourcedId of the Person representing the staff member
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getCollectionOfferingsForStaff()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A collection of courses or other learning units, used\
                  \ to group them into a coherent whole for enrollment, administrative,\
                  \ or other purposes. A Program is one example of a Course Collection."
                items:
                  $ref: '#/components/schemas/CollectionOffering'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getcollectionofferingsforstaff.operation
  /students/{id}/componentOfferings:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getComponentOfferingsForStudent() API
        call.
      description: Read all componentOfferings for a student
      operationId: getComponentOfferingsForStudent
      parameters:
      - name: id
        in: path
        description: The sourcedId of the Person representing the student
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getComponentOfferingsForStudent()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A subsection of a courseOffering. It may be a lesson\
                  \ or separately enrollable unit within a courseOffering. For example,\
                  \ Biology 101 may consist of a Lecture component offering and a\
                  \ Lab component offering"
                items:
                  $ref: '#/components/schemas/ComponentOffering'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getcomponentofferingsforstudent.operation
  /staff/{id}/componentOfferings:
    get:
      tags:
      - EducationManagement
      summary: The REST GET operation for the getComponentOfferingsForStaff() API
        call.
      description: Read all componentOfferings for a staff member
      operationId: getComponentOfferingsForStaff
      parameters:
      - name: id
        in: path
        description: The sourcedId of the Person representing the staff member
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getComponentOfferingsForStaff()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A subsection of a courseOffering. It may be a lesson\
                  \ or separately enrollable unit within a courseOffering. For example,\
                  \ Biology 101 may consist of a Lecture component offering and a\
                  \ Lab component offering"
                items:
                  $ref: '#/components/schemas/ComponentOffering'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getcomponentofferingsforstaff.operation
  /academicSessions:
    get:
      tags:
      - AcademicSessionManagement
      summary: The REST GET operation for the getAllAcademicSessions() API call.
      description: Read all AcademicSessions for an institution
      operationId: getAllAcademicSessions
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllAcademicSessions() API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A calendar period during which a school or institution\
                  \ schedules classes, offerings, or other units of learning for availability."
                items:
                  $ref: '#/components/schemas/AcademicSession'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallacademicsessions.operation
  /academicSessions/{id}:
    get:
      tags:
      - AcademicSessionManagement
      summary: The REST GET operation for the getAcademicSessionById() API call.
      description: Read an AcademicSession with a specific id
      operationId: getAcademicSessionById
      parameters:
      - name: id
        in: path
        description: The sourcedId of the AcademicSession
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "200":
          description: The 200 (OK) response to the getAcademicSessionById() API call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcademicSession'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "404":
          description: "As defined in [[rfc9110]], indicating that the origin server\
            \ did not find a current representation for the target resource or is\
            \ not willing to disclose that one exists."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getacademicsessionbyid.operation
  /organizations:
    get:
      tags:
      - OrganizationManagement
      summary: The REST GET operation for the getAllOrganizations() API call.
      description: Read all Organizations for an institution
      operationId: getAllOrganizations
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllOrganizations() API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "An administrative unit, it can be a division or subdivision\
                  \ of an institution or the institution itself. Examples: College\
                  \ of Arts and Letters, English Department."
                items:
                  $ref: '#/components/schemas/Organization'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallorganizations.operation
  /organizations/{id}:
    get:
      tags:
      - OrganizationManagement
      summary: The REST GET operation for the getOrganizationById() API call.
      description: Read Organization with a specific Id
      operationId: getOrganizationById
      parameters:
      - name: id
        in: path
        description: The sourcedId of the Organization
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "200":
          description: The 200 (OK) response to the getOrganizationById() API call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "404":
          description: "As defined in [[rfc9110]], indicating that the origin server\
            \ did not find a current representation for the target resource or is\
            \ not willing to disclose that one exists."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getorganizationbyid.operation
  /staff/{id}/organizations:
    get:
      tags:
      - OrganizationManagement
      summary: The REST GET operation for the getOrganizationsForStaff() API call.
      description: Read all organizations associated with a staff member
      operationId: getOrganizationsForStaff
      parameters:
      - name: id
        in: path
        description: The sourcedId of the Person representing the staff member
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getOrganizationsForStaff() API
            call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "An administrative unit, it can be a division or subdivision\
                  \ of an institution or the institution itself. Examples: College\
                  \ of Arts and Letters, English Department."
                items:
                  $ref: '#/components/schemas/Organization'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getorganizationsforstaff.operation
  /students/{id}/organizations:
    get:
      tags:
      - OrganizationManagement
      summary: The REST GET operation for the getOrganizationsForStudent() API call.
      description: Read all organizations associated with a student
      operationId: getOrganizationsForStudent
      parameters:
      - name: id
        in: path
        description: The sourcedId of the Person representing the student
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getOrganizationsForStudent() API
            call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "An administrative unit, it can be a division or subdivision\
                  \ of an institution or the institution itself. Examples: College\
                  \ of Arts and Letters, English Department."
                items:
                  $ref: '#/components/schemas/Organization'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getorganizationsforstudent.operation
  /persons:
    get:
      tags:
      - PersonManagement
      summary: The REST GET operation for the getAllPersons() API call.
      description: Read all Persons for an institution
      operationId: getAllPersons
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllPersons() API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A Person represents a human being, alive or deceased,\
                  \ real or imaginary."
                items:
                  $ref: '#/components/schemas/Person'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly.privacy
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallpersons.operation
  /persons/{id}:
    get:
      tags:
      - PersonManagement
      summary: The REST GET operation for the getPersonById() API call.
      description: Read Person with a specific id
      operationId: getPersonById
      parameters:
      - name: id
        in: path
        description: The sourcedId of the Person
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "200":
          description: The 200 (OK) response to the getPersonById() API call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Person'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "404":
          description: "As defined in [[rfc9110]], indicating that the origin server\
            \ did not find a current representation for the target resource or is\
            \ not willing to disclose that one exists."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly.privacy
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getpersonbyid.operation
  /staff:
    get:
      tags:
      - PersonManagement
      summary: The REST GET operation for the getAllStaff() API call.
      description: Read all persons with role of staff
      operationId: getAllStaff
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllStaff() API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A Person represents a human being, alive or deceased,\
                  \ real or imaginary."
                items:
                  $ref: '#/components/schemas/Person'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly.privacy
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallstaff.operation
  /students:
    get:
      tags:
      - PersonManagement
      summary: The REST GET operation for the getAllStudents() API call.
      description: Read all persons with a role of student
      operationId: getAllStudents
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllStudents() API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A Person represents a human being, alive or deceased,\
                  \ real or imaginary."
                items:
                  $ref: '#/components/schemas/Person'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly.privacy
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallstudents.operation
  /collectionOfferings/{id}/students:
    get:
      tags:
      - PersonManagement
      summary: The REST GET operation for the getAllStudentsForCollectionOffering()
        API call.
      description: Read all students for a collectionOffering
      operationId: getAllStudentsForCollectionOffering
      parameters:
      - name: id
        in: path
        description: The sourcedId of the CollectionOffering
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllStudentsForCollectionOffering()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A Person represents a human being, alive or deceased,\
                  \ real or imaginary."
                items:
                  $ref: '#/components/schemas/Person'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly.privacy
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallstudentsforcollectionoffering.operation
  /collectionOfferings/{id}/staff:
    get:
      tags:
      - PersonManagement
      summary: The REST GET operation for the getAllStaffForCollectionOffering() API
        call.
      description: Read all staff for a collectionOffering
      operationId: getAllStaffForCollectionOffering
      parameters:
      - name: id
        in: path
        description: The sourcedId of the CollectionOffering
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllStaffForCollectionOffering()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A Person represents a human being, alive or deceased,\
                  \ real or imaginary."
                items:
                  $ref: '#/components/schemas/Person'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly.privacy
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallstaffforcollectionoffering.operation
  /courseOfferings/{id}/students:
    get:
      tags:
      - PersonManagement
      summary: The REST GET operation for the getAllStudentsForCourseOffering() API
        call.
      description: Read all students for a courseOffering
      operationId: getAllStudentsForCourseOffering
      parameters:
      - name: id
        in: path
        description: The sourcedId of the CourseOffering
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllStudentsForCourseOffering()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A Person represents a human being, alive or deceased,\
                  \ real or imaginary."
                items:
                  $ref: '#/components/schemas/Person'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly.privacy
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallstudentsforcourseoffering.operation
  /courseOfferings/{id}/staff:
    get:
      tags:
      - PersonManagement
      summary: The REST GET operation for the getAllStaffForCourseOffering() API call.
      description: Read all staff for a courseOffering
      operationId: getAllStaffForCourseOffering
      parameters:
      - name: id
        in: path
        description: The sourcedId of the CourseOffering
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllStaffForCourseOffering()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A Person represents a human being, alive or deceased,\
                  \ real or imaginary."
                items:
                  $ref: '#/components/schemas/Person'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly.privacy
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallstaffforcourseoffering.operation
  /organizations/{id}/staff:
    get:
      tags:
      - PersonManagement
      summary: The REST GET operation for the getAllStaffForOrganization() API call.
      description: Read all staff members of an org
      operationId: getAllStaffForOrganization
      parameters:
      - name: id
        in: path
        description: The sourcedId of the organization
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllStaffForOrganization() API
            call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A Person represents a human being, alive or deceased,\
                  \ real or imaginary."
                items:
                  $ref: '#/components/schemas/Person'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly.privacy
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallstafffororganization.operation
  /organizations/{id}/students:
    get:
      tags:
      - PersonManagement
      summary: The REST GET operation for the getAllStudentsForOrganization() API
        call.
      description: Read all students of an organization
      operationId: getAllStudentsForOrganization
      parameters:
      - name: id
        in: path
        description: The sourcedId of the Organization
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllStudentsForOrganization()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A Person represents a human being, alive or deceased,\
                  \ real or imaginary."
                items:
                  $ref: '#/components/schemas/Person'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly.privacy
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallstudentsfororganization.operation
  /componentOfferings/{id}/students:
    get:
      tags:
      - PersonManagement
      summary: The REST GET operation for the getAllStudentsForComponentOffering()
        API call.
      description: Read all students for a componentOffering
      operationId: getAllStudentsForComponentOffering
      parameters:
      - name: id
        in: path
        description: The sourcedId of the ComponentOffering
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllStudentsForComponentOffering()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A Person represents a human being, alive or deceased,\
                  \ real or imaginary."
                items:
                  $ref: '#/components/schemas/Person'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly.privacy
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallstudentsforcomponentoffering.operation
  /componentOfferings/{id}/staff:
    get:
      tags:
      - PersonManagement
      summary: The REST GET operation for the getAllStaffForComponentOffering() API
        call.
      description: Read all students for a componentOffering
      operationId: getAllStaffForComponentOffering
      parameters:
      - name: id
        in: path
        description: The sourcedId of the ComponentOffering
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllStaffForComponentOffering()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "A Person represents a human being, alive or deceased,\
                  \ real or imaginary."
                items:
                  $ref: '#/components/schemas/Person'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly.privacy
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallstaffforcomponentoffering.operation
  /enrollments:
    get:
      tags:
      - EnrollmentManagement
      summary: The REST GET operation for the getAllEnrollments() API call.
      description: Read all Enrollments for an institution
      operationId: getAllEnrollments
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllEnrollments() API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "The contextualized joining of a person and a CourseOffering,\
                  \ CollectionOffering or ComponentOffering."
                items:
                  $ref: '#/components/schemas/Enrollment'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallenrollments.operation
  /enrollments/{id}:
    get:
      tags:
      - EnrollmentManagement
      summary: The REST GET operation for the getEnrollmentById() API call.
      description: Read Enrollment with a specific id
      operationId: getEnrollmentById
      parameters:
      - name: id
        in: path
        description: The sourcedId of the Enrollment
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "200":
          description: The 200 (OK) response to the getEnrollmentById() API call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Enrollment'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "404":
          description: "As defined in [[rfc9110]], indicating that the origin server\
            \ did not find a current representation for the target resource or is\
            \ not willing to disclose that one exists."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getenrollmentbyid.operation
  /courseOfferings/{id}/enrollments:
    get:
      tags:
      - EnrollmentManagement
      summary: The REST GET operation for the getAllEnrollmentsForCourseOffering()
        API call.
      description: Read all enrollments for a courseOffering
      operationId: getAllEnrollmentsForCourseOffering
      parameters:
      - name: id
        in: path
        description: The sourcedId of the CourseOffering
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllEnrollmentsForCourseOffering()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "The contextualized joining of a person and a CourseOffering,\
                  \ CollectionOffering or ComponentOffering."
                items:
                  $ref: '#/components/schemas/Enrollment'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallenrollmentsforcourseoffering.operation
  /collectionOfferings/{id}/enrollments:
    get:
      tags:
      - EnrollmentManagement
      summary: The REST GET operation for the getAllEnrollmentsForCollectionOffering()
        API call.
      description: Read all enrollments for a courseOffering
      operationId: getAllEnrollmentsForCollectionOffering
      parameters:
      - name: id
        in: path
        description: The sourcedId of the CourseOffering
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllEnrollmentsForCollectionOffering()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "The contextualized joining of a person and a CourseOffering,\
                  \ CollectionOffering or ComponentOffering."
                items:
                  $ref: '#/components/schemas/Enrollment'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallenrollmentsforcollectionoffering.operation
  /componentOfferings/{id}/enrollments:
    get:
      tags:
      - EnrollmentManagement
      summary: The REST GET operation for the getAllEnrollmentsForComponentOffering()
        API call.
      description: Read all enrollments for a courseOffering
      operationId: getAllEnrollmentsForComponentOffering
      parameters:
      - name: id
        in: path
        description: The sourcedId of the CourseOffering
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllEnrollmentsForComponentOffering()
            API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "The contextualized joining of a person and a CourseOffering,\
                  \ CollectionOffering or ComponentOffering."
                items:
                  $ref: '#/components/schemas/Enrollment'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallenrollmentsforcomponentoffering.operation
  /academicSessions/{id}/enrollments:
    get:
      tags:
      - EnrollmentManagement
      summary: The REST GET operation for the getAllEnrollmentsBySession() API call.
      description: Read all enrollments in a specified academic session
      operationId: getAllEnrollmentsBySession
      parameters:
      - name: id
        in: path
        description: The sourcedId of the AcademicSession
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllEnrollmentsBySession() API
            call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: "The contextualized joining of a person and a CourseOffering,\
                  \ CollectionOffering or ComponentOffering."
                items:
                  $ref: '#/components/schemas/Enrollment'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "404":
          description: "As defined in [[rfc9110]], indicating that the origin server\
            \ did not find a current representation for the target resource or is\
            \ not willing to disclose that one exists."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallenrollmentsbysession.operation
  /affiliations:
    get:
      tags:
      - AffiliationManagement
      summary: The REST GET operation for the getAllAffiliations() API call.
      description: Read all affiliations for an institution
      operationId: getAllAffiliations
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/filter'
      responses:
        "200":
          description: The 200 (OK) response to the getAllAffiliations() API call.
          headers:
            X-Total-Count:
              $ref: '#/components/headers/X-Total-Count'
          content:
            application/json:
              schema:
                minItems: 1
                type: array
                description: A container that describes an Edu-API persons relationships
                  to organizations; including their role(s) and the time frames those
                  roles are in place.
                items:
                  $ref: '#/components/schemas/Affiliation'
          links:
            next:
              $ref: '#/components/links/next'
            last:
              $ref: '#/components/links/last'
            first:
              $ref: '#/components/links/first'
            prev:
              $ref: '#/components/links/prev'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getallaffiliations.operation
  /affiliations/{id}:
    get:
      tags:
      - AffiliationManagement
      summary: The REST GET operation for the getAffiliationById() API call.
      description: Read Affiliation with a specific id
      operationId: getAffiliationById
      parameters:
      - name: id
        in: path
        description: The sourcedId of the Affiliation
        required: true
        allowEmptyValue: false
        style: simple
        schema:
          type: string
          description: The data-type for establishing a Globally Unique Identifier
            (GUID). There is no predefined structure for the GUID.
      responses:
        "200":
          description: The 200 (OK) response to the getAffiliationById() API call.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Affiliation'
        "400":
          description: "As defined in [[rfc9110]], indicating that the server cannot\
            \ or will not process the request due to something that is perceived to\
            \ be a client error."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "401":
          description: "As defined in [[rfc9110]], indicating that the request has\
            \ not been applied because it lacks valid authentication credentials for\
            \ the target resource."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "403":
          description: "As defined in [[rfc9110]], indicating that the server understood\
            \ the request but refuses to fulfill it. The exact reason SHOULD be explained\
            \ in the response payload."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "404":
          description: "As defined in [[rfc9110]], indicating that the origin server\
            \ did not find a current representation for the target resource or is\
            \ not willing to disclose that one exists."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "422":
          description: "As defined in [[rfc9110]], used when the server cannot validate\
            \ an incoming entity."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "429":
          description: "As defined in [[rfc6585]], indicating that the user has sent\
            \ too many requests in a given amount of time ('rate limiting')."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        "500":
          description: "As defined in [[rfc9110]]. Implementations SHOULD avoid using\
            \ this error code - use only if there is catastrophic error and there\
            \ is not a more appropriate code."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
        default:
          description: The request was invalid or cannot be served. The exact error
            SHOULD be explained in the response payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Imsx_StatusInfo'
      security:
      - CCGSecurity:
        - http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
      x-operation-pid: org.1edtech.eduapi.v1p0.rest.getaffiliationbyid.operation
components:
  schemas:
    TypedAddress:
      required:
      - addressType
      type: object
      properties:
        addressCountry:
          type: string
          description: A country.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        geo:
          $ref: '#/components/schemas/GeoCoordinates'
        addressCountryCode:
          type: string
          description: "A country code. The value must be a ISO 3166-1 alpha-2 country\
            \ code [[ISO3166-1]]."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.countrycode.class
        streetAddress:
          type: string
          description: A street address within the locality.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        addressType:
          description: The type of address. This is based on an extensible enumerated
            vocabulary.
          anyOf:
          - type: string
            enum:
            - visitingAddress
            - mailingAddress
            - permanentAddress
            - deliveryAddress
            - billingAddress
            - homeAddress
            - workAddress
            - formerAddress
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.addresstypeenum.class
        postalCode:
          type: string
          description: A postal code.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        addressLocality:
          type: string
          description: A locality within the region.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        addressRegion:
          type: string
          description: A region within the country.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        postOfficeBoxNumber:
          type: string
          description: A post office box number for PO box addresses.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
      additionalProperties: false
      description: A typed address.
      x-class-pid: org.1edtech.eduapi.v1p0.typedaddress.class
    TypedPhone:
      required:
      - phoneType
      - phone
      type: object
      properties:
        phoneType:
          description: The type of phone number. This is based on an extensible enumerated
            vocabulary.
          anyOf:
          - type: string
            enum:
            - homePhone
            - workPhone
            - icePhone
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.phonetypeenum.class
        phone:
          type: string
          description: A phone number.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.phonenumber.class
      additionalProperties: false
      description: A typed phone number.
      x-class-pid: org.1edtech.eduapi.v1p0.typedphone.class
    Organization:
      required:
      - sourcedId
      - recordLanguage
      - name
      - organizationType
      - recordStatus
      type: object
      properties:
        sourcedId:
          type: string
          description: "The sourcedId of the object. This is the interoperability\
            \ identifier that systems will refer to when making API calls, or when\
            \ needing to identify an object. Systems SHOULD be able to map whichever\
            \ local ids (e.g. database key fields) they use to sourcedId. The sourcedId\
            \ of an object MUST be an anonymized or pseudonymized identifier of an\
            \ entity and as such will not contain Personally Identifiable Information\
            \ (PII) or Personal Data (PD)."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.guid.class
        otherCodes:
          minItems: 0
          type: array
          description: Human readable codes/identifiers for the entity being described
          items:
            $ref: '#/components/schemas/IdentifierEntry'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.identifierentry.class
        parent:
          type: string
          description: A reference to a parent organization.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.organizationguidref.class
        otherAddresses:
          minItems: 0
          type: array
          description: A list of other addresses.
          items:
            $ref: '#/components/schemas/TypedAddress'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.typedaddress.class
        recordLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The primary language used in the described entity.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        description:
          minItems: 0
          type: array
          description: A set of descriptions of the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        primaryCode:
          $ref: '#/components/schemas/IdentifierEntry'
        organizationType:
          type: string
          description: The type of Organization.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        extensions:
          $ref: '#/components/schemas/organizationExtensions'
        dateLastModified:
          type: string
          description: A timestamp describing when this record was last modified.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        recordStatus:
          type: string
          description: "The status of this record. A record 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 required to do so."
          enum:
          - active
          - deleted
          - inactive
          x-srcprop-pid: org.1edtech.eduapi.v1p0.recordstatustypeenum.class
        children:
          minItems: 0
          type: array
          description: References to child organizations.
          items:
            type: string
            description: A reference to an `Organization` object that has an allocated
              sourcedId (`GUID`).
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.organizationguidref.class
        name:
          minItems: 1
          type: array
          description: A name for the associated entity with a designated language
            for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        primaryAddress:
          $ref: '#/components/schemas/OptionallyTypedAddress'
      additionalProperties: false
      description: "An administrative unit, it can be a division or subdivision of\
        \ an institution or the institution itself. Examples: College of Arts and\
        \ Letters, English Department."
      x-class-pid: org.1edtech.eduapi.v1p0.organization.class
    educationOfferingExtensions:
      type: object
      properties: {}
      additionalProperties: true
      description: Extension properties related to education offerings
      x-class-pid: org.1edtech.eduapi.v1p0.educationofferingextensions.class
    personExtensions:
      type: object
      properties: {}
      additionalProperties: true
      description: Extension properties related to Edu-API persons
      x-class-pid: org.1edtech.eduapi.v1p0.personextensions.class
    CourseOffering:
      required:
      - offeringType
      - course
      - sourcedId
      - recordLanguage
      - title
      - description
      - primaryCode
      - organization
      - academicSession
      - offeringFormat
      - registrationStatus
      - startDate
      - endDate
      - recordStatus
      type: object
      properties:
        minNumberStudents:
          type: integer
          description: The minimum number of students allowed to enroll for this offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        synchronicity:
          description: An indicator of whether instructor and learner must both be
            present at the same time
          anyOf:
          - type: string
            enum:
            - hybrid
            - asynchronous
            - synchronous
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.synchronicityenum.class
        parent:
          minItems: 0
          type: array
          description: A reference to the parent collectionOffering.
          items:
            type: string
            description: A reference to an `EducationCollectionOffering` object that
              has an allocated sourcedId (`GUID`).
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.collectionofferingguidref.class
        registrationStatus:
          type: string
          description: The status of the entity indicating whether it is open for
            enrollment for teachers and students. This is represented by an extensible
            enumerated vocabulary.
          enum:
          - open
          - closed
          - pending
          - waitlist
          x-srcprop-pid: org.1edtech.eduapi.v1p0.registrationstatusenum.class
        roleEnablement:
          minItems: 0
          type: array
          description: "An array to store associated dates for a course offering.\
            \ Specifically, additional important date and time offsets surrounding\
            \ when specific roles may be associated with the course offering before\
            \ or after the official start and end dates. These dates are meant to\
            \ be considered additional metadata about the course offering and applied\
            \ independent of the startDate and endDate. They are not intended to be\
            \ used to as replacements."
          items:
            $ref: '#/components/schemas/RoleEnablement'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.roleenablement.class
        offeringType:
          description: A representation of what the entity defines. It is based on
            an extensible enumerated vocabulary.
          anyOf:
          - type: string
            enum:
            - standard
            - honors
            - research
            - independentStudy
            - practicum
            - internship
            - studyAbroad
            - capstone
            - clinical
            - correspondence
            - fieldExperience
            - seminar
            - thesis
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.coursetypeenum.class
        endDate:
          type: string
          description: The end date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datez.class
        description:
          minItems: 1
          type: array
          description: A set of descriptions of the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        title:
          minItems: 1
          type: array
          description: A set of titles for the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        primaryCode:
          $ref: '#/components/schemas/IdentifierEntry'
        paceOfStudy:
          type: string
          description: The tempo that the course is taught at as a percentage of a
            normal course.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.percentage.class
        enrolledNumberStudents:
          type: integer
          description: The number of students that have already enrolled for this
            offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        academicSessionCode:
          type: string
          description: A business code that a system might use to reference an academic
            session.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        offeringFormat:
          description: The modality by which the entity is delivered. This is represented
            by an extensible enumerated vocabulary
          anyOf:
          - type: string
            enum:
            - online
            - blended
            - onGround
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.offeringformatenum.class
        dateLastModified:
          type: string
          description: A timestamp describing when this record was last modified.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        course:
          type: string
          description: A reference to the courseTemplate.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.coursetemplateguidref.class
        teachingLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The main language used to relay the content of the offering.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        sourcedId:
          type: string
          description: "The sourcedId of the object. This is the interoperability\
            \ identifier that systems will refer to when making API calls, or when\
            \ needing to identify an object. Systems SHOULD be able to map whichever\
            \ local ids (e.g. database key fields) they use to sourcedId. The sourcedId\
            \ of an object MUST be an anonymized or pseudonymized identifier of an\
            \ entity and as such will not contain Personally Identifiable Information\
            \ (PII) or Personal Data (PD)."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.guid.class
        otherCodes:
          minItems: 0
          type: array
          description: Human readable codes/identifiers for the entity being described
          items:
            $ref: '#/components/schemas/IdentifierEntry'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.identifierentry.class
        pendingNumberStudents:
          type: integer
          description: The number of students that have a pending enrollment request
            for this offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        recordLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The primary language used in the described entity.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        academicSession:
          type: string
          description: A reference to an Edu-API Academic Session
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.academicsessionguidref.class
        extensions:
          $ref: '#/components/schemas/educationOfferingExtensions'
        maxNumberStudents:
          type: integer
          description: The maximum number of students allowed to enroll for this offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        recordStatus:
          type: string
          description: "The status of this record. A record 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 required to do so."
          enum:
          - active
          - deleted
          - inactive
          x-srcprop-pid: org.1edtech.eduapi.v1p0.recordstatustypeenum.class
        organizationCode:
          type: string
          description: A business code used to system might use to reference an organization
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        organization:
          type: string
          description: A reference to an Edu-API Organization.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.organizationguidref.class
        locations:
          minItems: 0
          type: array
          description: A container for describing where the entity takes place. This
            could be as a description or as a geo location
          items:
            $ref: '#/components/schemas/Location'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.location.class
        startDate:
          type: string
          description: The start date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datez.class
      additionalProperties: false
      description: Relates a course to one or more delivery scenarios.
      x-class-pid: org.1edtech.eduapi.v1p0.courseoffering.class
    PersonNameEntry:
      required:
      - nameType
      type: object
      properties:
        nameType:
          description: The type of name described in this entry.
          anyOf:
          - type: string
            enum:
            - legalName
            - preferredName
            - phoneticName
            - aliasName
            - formerName
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.personnametypeenum.class
        honorificSuffix:
          type: string
          description: "Honorific suffix(es) following a person's name (e.g. 'M.D,\
            \ PhD')."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        familyName:
          type: string
          description: "Family name. In the western world, often referred to as the\
            \ 'last name' of a person."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        givenName:
          type: string
          description: "Given name. In the western world, often referred to as the\
            \ 'first name' of a person."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        familyNamePrefix:
          type: string
          description: "Family name prefix. As used in some locales, this is the leading\
            \ part of a family name (e.g. 'de' in the name 'de Boer')."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        patronymicName:
          type: string
          description: Patronymic name.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        honorificPrefix:
          type: string
          description: "Honorific prefix(es) preceding a person's name (e.g. 'Dr',\
            \ 'Mrs' or 'Mr')."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        additionalName:
          type: string
          description: Additional name. Includes what is often referred to as 'middle
            name' in the western world.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
      additionalProperties: false
      description: The PersonNameEntry complex type.
      x-class-pid: org.1edtech.eduapi.v1p0.personnameentry.class
    IdentifierEntry:
      required:
      - identifier
      - identifierType
      type: object
      properties:
        identifier:
          type: string
          description: An identifier.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.identifier.class
        identifierType:
          description: The identifier type.
          anyOf:
          - type: string
            enum:
            - systemId
            - productId
            - userName
            - accountId
            - emailAddress
            - nationalIdentityNumber
            - isbn
            - issn
            - lisSourcedId
            - oneRosterSourcedId
            - sisSourcedId
            - ltiContextId
            - ltiDeploymentId
            - ltiToolId
            - ltiPlatformId
            - ltiUserId
            - identifier
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.identifiertypeenum.class
      additionalProperties: false
      description: A container to transmit additional needed identifiers
      x-class-pid: org.1edtech.eduapi.v1p0.identifierentry.class
    Imsx_CodeMinorField:
      required:
      - imsx_codeMinorFieldName
      - imsx_codeMinorFieldValue
      type: object
      properties:
        imsx_codeMinorFieldName:
          type: string
          description: This should contain the identity of the system that has produced
            the code minor status code report.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.normalizedstring.class
        imsx_codeMinorFieldValue:
          type: string
          description: The code minor status code (this is a value from the corresponding
            enumerated vocabulary).
          enum:
          - forbidden
          - fullsuccess
          - internal_server_error
          - invalid_data
          - invalid_query_parameter
          - misdirected_request
          - not_acceptable
          - not_allowed
          - not_found
          - not_modified
          - server_busy
          - unauthorizedrequest
          - unknown
          x-srcprop-pid: org.1edtech.eduapi.v1p0.imsx_codeminorfieldvalue.class
      additionalProperties: false
      description: This is the container for a single code minor status code.
      x-class-pid: org.1edtech.eduapi.v1p0.imsx_codeminorfield.class
    OptionallyTypedAddress:
      type: object
      properties:
        addressCountry:
          type: string
          description: A country.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        geo:
          $ref: '#/components/schemas/GeoCoordinates'
        addressCountryCode:
          type: string
          description: "A country code. The value must be a ISO 3166-1 alpha-2 country\
            \ code [[ISO3166-1]]."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.countrycode.class
        streetAddress:
          type: string
          description: A street address within the locality.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        addressType:
          description: The type of address. This is based on an extensible enumerated
            vocabulary.
          anyOf:
          - type: string
            enum:
            - visitingAddress
            - mailingAddress
            - permanentAddress
            - deliveryAddress
            - billingAddress
            - homeAddress
            - workAddress
            - formerAddress
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.addresstypeenum.class
        postalCode:
          type: string
          description: A postal code.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        addressLocality:
          type: string
          description: A locality within the region.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        addressRegion:
          type: string
          description: A region within the country.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        postOfficeBoxNumber:
          type: string
          description: A post office box number for PO box addresses.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
      additionalProperties: false
      description: A optionally typed address.
      x-class-pid: org.1edtech.eduapi.v1p0.optionallytypedaddress.class
    academicSessionExtensions:
      type: object
      properties: {}
      additionalProperties: true
      description: Extension properties related to education academic sessions
      x-class-pid: org.1edtech.eduapi.v1p0.academicsessionextensions.class
    Education:
      required:
      - sourcedId
      - recordLanguage
      - title
      - description
      - primaryCode
      - organization
      - level
      - creditType
      - gradingScheme
      - recordStatus
      type: object
      properties:
        sourcedId:
          type: string
          description: "The sourcedId of the object. This is the interoperability\
            \ identifier that systems will refer to when making API calls, or when\
            \ needing to identify an object. Systems SHOULD be able to map whichever\
            \ local ids (e.g. database key fields) they use to sourcedId. The sourcedId\
            \ of an object MUST be an anonymized or pseudonymized identifier of an\
            \ entity and as such will not contain Personally Identifiable Information\
            \ (PII) or Personal Data (PD)."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.guid.class
        otherCodes:
          minItems: 0
          type: array
          description: Any number of additional human readable codes/identifiers for
            the entity being described
          items:
            $ref: '#/components/schemas/IdentifierEntry'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.identifierentry.class
        level:
          description: The educational level that the entity is for. This is represented
            by an extensible enumerated vocabulary and commonly varies by institution
            and region.
          anyOf:
          - type: string
            enum:
            - graduate
            - undergraduate
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.educationlevelenum.class
        recordLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The primary language used in the described entity.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        description:
          minItems: 1
          type: array
          description: A set of descriptions of the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        title:
          minItems: 1
          type: array
          description: A set of titles for the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        primaryCode:
          $ref: '#/components/schemas/IdentifierEntry'
        creditType:
          description: Reference to what the completion of this entity counts towards.
            This is represented by an extensible enumerated vocabulary.
          anyOf:
          - type: string
            enum:
            - credit
            - nonCredit
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.credittypeenum.class
        extensions:
          $ref: '#/components/schemas/educationExtensions'
        recordStatus:
          type: string
          description: "The status of this record. A record 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 required to do so."
          enum:
          - active
          - deleted
          - inactive
          x-srcprop-pid: org.1edtech.eduapi.v1p0.recordstatustypeenum.class
        dateLastModified:
          type: string
          description: A timestamp describing when this record was last modified.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        organizationCode:
          type: string
          description: A business code used to system might use to reference an organization
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        organization:
          type: string
          description: A reference to an Edu-API Organization.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.organizationguidref.class
        gradingScheme:
          $ref: '#/components/schemas/LanguageTypedString'
        teachingLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The main language used to relay the content of the offering.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
      additionalProperties: false
      description: A description of an abstract education.
      x-class-pid: org.1edtech.eduapi.v1p0.education.class
    CollectionOffering:
      required:
      - offeringType
      - collection
      - sourcedId
      - recordLanguage
      - title
      - description
      - primaryCode
      - organization
      - academicSession
      - offeringFormat
      - registrationStatus
      - startDate
      - endDate
      - recordStatus
      type: object
      properties:
        minNumberStudents:
          type: integer
          description: The minimum number of students allowed to enroll for this offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        synchronicity:
          description: An indicator of whether instructor and learner must both be
            present at the same time
          anyOf:
          - type: string
            enum:
            - hybrid
            - asynchronous
            - synchronous
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.synchronicityenum.class
        parent:
          minItems: 0
          type: array
          description: A reference to parent collectionOffering (if present).
          items:
            type: string
            description: A reference to an `EducationCollectionOffering` object that
              has an allocated sourcedId (`GUID`).
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.collectionofferingguidref.class
        registrationStatus:
          type: string
          description: The status of the entity indicating whether it is open for
            enrollment for teachers and students. This is represented by an extensible
            enumerated vocabulary.
          enum:
          - open
          - closed
          - pending
          - waitlist
          x-srcprop-pid: org.1edtech.eduapi.v1p0.registrationstatusenum.class
        roleEnablement:
          minItems: 0
          type: array
          description: "An array to store associated dates for a course offering.\
            \ Specifically, additional important date and time offsets surrounding\
            \ when specific roles may be associated with the course offering before\
            \ or after the official start and end dates. These dates are meant to\
            \ be considered additional metadata about the course offering and applied\
            \ independent of the startDate and endDate. They are not intended to be\
            \ used to as replacements."
          items:
            $ref: '#/components/schemas/RoleEnablement'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.roleenablement.class
        offeringType:
          description: A representation of what the entity defines. It is based on
            an extensible enumerated vocabulary.
          anyOf:
          - type: string
            enum:
            - program
            - generalEducation
            - requiredCollection
            - electiveCollection
            - capstoneCollection
            - majorCollection
            - minorCollection
            - programSpecialization
            - nonDegreeCollection
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.collectiontypeenum.class
        endDate:
          type: string
          description: The end date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datez.class
        description:
          minItems: 1
          type: array
          description: A set of descriptions of the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        title:
          minItems: 1
          type: array
          description: A set of titles for the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        primaryCode:
          $ref: '#/components/schemas/IdentifierEntry'
        paceOfStudy:
          type: string
          description: The tempo that the course is taught at as a percentage of a
            normal course.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.percentage.class
        enrolledNumberStudents:
          type: integer
          description: The number of students that have already enrolled for this
            offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        academicSessionCode:
          type: string
          description: A business code that a system might use to reference an academic
            session.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        offeringFormat:
          description: The modality by which the entity is delivered. This is represented
            by an extensible enumerated vocabulary
          anyOf:
          - type: string
            enum:
            - online
            - blended
            - onGround
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.offeringformatenum.class
        dateLastModified:
          type: string
          description: A timestamp describing when this record was last modified.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        teachingLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The main language used to relay the content of the offering.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        sourcedId:
          type: string
          description: "The sourcedId of the object. This is the interoperability\
            \ identifier that systems will refer to when making API calls, or when\
            \ needing to identify an object. Systems SHOULD be able to map whichever\
            \ local ids (e.g. database key fields) they use to sourcedId. The sourcedId\
            \ of an object MUST be an anonymized or pseudonymized identifier of an\
            \ entity and as such will not contain Personally Identifiable Information\
            \ (PII) or Personal Data (PD)."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.guid.class
        otherCodes:
          minItems: 0
          type: array
          description: Human readable codes/identifiers for the entity being described
          items:
            $ref: '#/components/schemas/IdentifierEntry'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.identifierentry.class
        pendingNumberStudents:
          type: integer
          description: The number of students that have a pending enrollment request
            for this offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        recordLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The primary language used in the described entity.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        collection:
          type: string
          description: A reference to the collectionTemplate.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.collectiontemplateguidref.class
        academicSession:
          type: string
          description: A reference to an Edu-API Academic Session
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.academicsessionguidref.class
        extensions:
          $ref: '#/components/schemas/educationOfferingExtensions'
        maxNumberStudents:
          type: integer
          description: The maximum number of students allowed to enroll for this offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        recordStatus:
          type: string
          description: "The status of this record. A record 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 required to do so."
          enum:
          - active
          - deleted
          - inactive
          x-srcprop-pid: org.1edtech.eduapi.v1p0.recordstatustypeenum.class
        organizationCode:
          type: string
          description: A business code used to system might use to reference an organization
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        organization:
          type: string
          description: A reference to an Edu-API Organization.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.organizationguidref.class
        locations:
          minItems: 0
          type: array
          description: A container for describing where the entity takes place. This
            could be as a description or as a geo location
          items:
            $ref: '#/components/schemas/Location'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.location.class
        startDate:
          type: string
          description: The start date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datez.class
      additionalProperties: false
      description: "A collection of courses or other learning units, used to group\
        \ them into a coherent whole for enrollment, administrative, or other purposes.\
        \ A Program is one example of a Course Collection."
      x-class-pid: org.1edtech.eduapi.v1p0.collectionoffering.class
    Enrollment:
      required:
      - sourcedId
      - recordLanguage
      - isActive
      - enrollmentStatus
      - person
      - role
      - educationOffering
      - offeringType
      - recordStatus
      type: object
      properties:
        sourcedId:
          type: string
          description: "The sourcedId of the object. This is the interoperability\
            \ identifier that systems will refer to when making API calls, or when\
            \ needing to identify an object. Systems SHOULD be able to map whichever\
            \ local ids (e.g. database key fields) they use to sourcedId. The sourcedId\
            \ of an object MUST be an anonymized or pseudonymized identifier of an\
            \ entity and as such will not contain Personally Identifiable Information\
            \ (PII) or Personal Data (PD)."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.guid.class
        role:
          description: The role of the associated person in the given context.
          anyOf:
          - type: string
            enum:
            - member
            - chair
            - staff
            - student
            - administrator
            - aide
            - guardian
            - parent
            - proctor
            - relative
            - teacher
            - advisor
            - teachingAssistant
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.roletypeenum.class
        endDate:
          type: string
          description: The end date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        offeringType:
          description: The type of education being offered. This is based on an enumerated
            vocabulary.
          anyOf:
          - type: string
            enum:
            - collection
            - course
            - component
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.educationofferingtypeenum.class
        educationOffering:
          type: string
          description: A reference to an Edu-API offering entity. This is the instantiated
            Education the person is being enrolled on.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.educationofferingguidref.class
        recordLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The primary language used in the described entity.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        isActive:
          type: boolean
          description: "Used to identify if the enrollment described in this entity\
            \ is currently active or inactive. A value of true indicates that the\
            \ enrollment is active, a value of false indicates the enrollment is inactive.\
            \ To be used in conjunction with enrollmentStatus when more details about\
            \ the enrollment state are required. See the best practices guide for\
            \ guidance on how to use these properties in tandem."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.boolean.class
        extensions:
          $ref: '#/components/schemas/enrollmentExtensions'
        recordStatus:
          type: string
          description: "The status of this record. A record 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 required to do so."
          enum:
          - active
          - deleted
          - inactive
          x-srcprop-pid: org.1edtech.eduapi.v1p0.recordstatustypeenum.class
        dateLastModified:
          type: string
          description: A timestamp describing when this record was last modified.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        enrollmentStatus:
          description: The status of this enrollment.
          anyOf:
          - type: string
            enum:
            - onLeave
            - withdrawn
            - accepted
            - pending
            - cancelled
            - registered
            - revoked
            - Interruption
            - finished
            - withdrawnFailing
            - withdrawnPassing
            - dropped
            - suspended
            - enrolled
            - declined
            - deferred
            - onHold
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.enrollmentstatusenum.class
        person:
          type: string
          description: A reference to an Edu-API Person.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.personguidref.class
        startDate:
          type: string
          description: The start date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
      additionalProperties: false
      description: "The contextualized joining of a person and a CourseOffering, CollectionOffering\
        \ or ComponentOffering."
      x-class-pid: org.1edtech.eduapi.v1p0.enrollment.class
    LanguageTypedString:
      required:
      - recordLanguage
      - value
      type: object
      properties:
        recordLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The primary language used in the described entity.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        value:
          type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
      additionalProperties: false
      description: A String with an associated language code.
      x-class-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
    ComponentTemplate:
      required:
      - componentType
      - sourcedId
      - recordLanguage
      - title
      - description
      - primaryCode
      - organization
      - level
      - creditType
      - gradingScheme
      - recordStatus
      type: object
      properties:
        sourcedId:
          type: string
          description: "The sourcedId of the object. This is the interoperability\
            \ identifier that systems will refer to when making API calls, or when\
            \ needing to identify an object. Systems SHOULD be able to map whichever\
            \ local ids (e.g. database key fields) they use to sourcedId. The sourcedId\
            \ of an object MUST be an anonymized or pseudonymized identifier of an\
            \ entity and as such will not contain Personally Identifiable Information\
            \ (PII) or Personal Data (PD)."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.guid.class
        otherCodes:
          minItems: 0
          type: array
          description: Any number of additional human readable codes/identifiers for
            the entity being described
          items:
            $ref: '#/components/schemas/IdentifierEntry'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.identifierentry.class
        componentType:
          description: A representation of what the entity defines. It is based on
            an extensible enumerated vocabulary.
          anyOf:
          - type: string
            enum:
            - individualizedInstruction
            - integratedLectureLab
            - laboratory
            - lecture
            - practicum
            - recitation
            - research
            - seminar
            - independentStudy
            - fieldExperience
            - exam
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.componenttypeenum.class
        parent:
          minItems: 0
          type: array
          description: A reference to the parent Course.
          items:
            type: string
            description: A reference to a `Course` object that has an allocated sourcedId
              (`GUID`).
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.coursetemplateguidref.class
        level:
          description: The educational level that the entity is for. This is represented
            by an extensible enumerated vocabulary and commonly varies by institution
            and region.
          anyOf:
          - type: string
            enum:
            - graduate
            - undergraduate
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.educationlevelenum.class
        recordLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The primary language used in the described entity.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        description:
          minItems: 1
          type: array
          description: A set of descriptions of the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        title:
          minItems: 1
          type: array
          description: A set of titles for the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        primaryCode:
          $ref: '#/components/schemas/IdentifierEntry'
        creditType:
          description: Reference to what the completion of this entity counts towards.
            This is represented by an extensible enumerated vocabulary.
          anyOf:
          - type: string
            enum:
            - credit
            - nonCredit
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.credittypeenum.class
        extensions:
          $ref: '#/components/schemas/educationExtensions'
        recordStatus:
          type: string
          description: "The status of this record. A record 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 required to do so."
          enum:
          - active
          - deleted
          - inactive
          x-srcprop-pid: org.1edtech.eduapi.v1p0.recordstatustypeenum.class
        dateLastModified:
          type: string
          description: A timestamp describing when this record was last modified.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        organizationCode:
          type: string
          description: A business code used to system might use to reference an organization
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        organization:
          type: string
          description: A reference to an Edu-API Organization.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.organizationguidref.class
        gradingScheme:
          $ref: '#/components/schemas/LanguageTypedString'
        teachingLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The main language used to relay the content of the offering.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
      additionalProperties: false
      description: "A subsection of a Course or Class. It may be a lesson unit within\
        \ a Class or it may be a separately enrolled unit with a Course. For example,\
        \ Biology 101 may consist of a Lecture component and a Lab component."
      x-class-pid: org.1edtech.eduapi.v1p0.componenttemplate.class
    TypedEmail:
      required:
      - emailType
      - email
      type: object
      properties:
        emailType:
          description: The type of email address. This is based on an extensible enumerated
            vocabulary.
          anyOf:
          - type: string
            enum:
            - homeEmail
            - workEmail
            - iceEmail
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.emailtypeenum.class
        email:
          type: string
          description: An email address.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.emailaddress.class
      additionalProperties: false
      description: A typed email address.
      x-class-pid: org.1edtech.eduapi.v1p0.typedemail.class
    AcademicSession:
      required:
      - sourcedId
      - recordLanguage
      - recordStatus
      type: object
      properties:
        sourcedId:
          type: string
          description: "The sourcedId of the object. This is the interoperability\
            \ identifier that systems will refer to when making API calls, or when\
            \ needing to identify an object. Systems SHOULD be able to map whichever\
            \ local ids (e.g. database key fields) they use to sourcedId. The sourcedId\
            \ of an object MUST be an anonymized or pseudonymized identifier of an\
            \ entity and as such will not contain Personally Identifiable Information\
            \ (PII) or Personal Data (PD)."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.guid.class
        otherCodes:
          minItems: 0
          type: array
          description: Human readable codes/identifiers for the entity being described
          items:
            $ref: '#/components/schemas/IdentifierEntry'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.identifierentry.class
        parent:
          type: string
          description: A reference to another Edu-API Academic Session that serves
            as a parent `AcademicSession`.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.academicsessionguidref.class
        endDate:
          type: string
          description: The end date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        recordLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The primary language used in the described entity.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        title:
          minItems: 0
          type: array
          description: A set of titles for the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        primaryCode:
          $ref: '#/components/schemas/IdentifierEntry'
        extensions:
          $ref: '#/components/schemas/academicSessionExtensions'
        recordStatus:
          type: string
          description: "The status of this record. A record 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 required to do so."
          enum:
          - active
          - deleted
          - inactive
          x-srcprop-pid: org.1edtech.eduapi.v1p0.recordstatustypeenum.class
        dateLastModified:
          type: string
          description: A timestamp describing when this record was last modified.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        children:
          minItems: 0
          type: array
          description: A reference to another Edu-API Academic Session that serves
            as a Child `AcademicSession`s.
          items:
            type: string
            description: A reference to an `AcademicSession` object that has an allocated
              sourcedId (`GUID`).
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.academicsessionguidref.class
        sessionType:
          description: The type of academic session. This is based upon an enumerated
            vocabulary.
          anyOf:
          - type: string
            enum:
            - gradingPeriod
            - semester
            - schoolYear
            - term
            - studyPeriod
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.academicsessiontypeenum.class
        startDate:
          type: string
          description: The start date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
      additionalProperties: false
      description: "A calendar period during which a school or institution schedules\
        \ classes, offerings, or other units of learning for availability."
      x-class-pid: org.1edtech.eduapi.v1p0.academicsession.class
    Imsx_CodeMinor:
      required:
      - imsx_codeMinorField
      type: object
      properties:
        imsx_codeMinorField:
          minItems: 1
          type: array
          description: Each reported code minor status code.
          items:
            $ref: '#/components/schemas/Imsx_CodeMinorField'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.imsx_codeminorfield.class
      additionalProperties: false
      description: This is the container for the set of code minor status codes reported
        in the responses from the Service Provider.
      x-class-pid: org.1edtech.eduapi.v1p0.imsx_codeminor.class
    Affiliation:
      required:
      - sourcedId
      - person
      - organization
      - role
      - affiliationStatus
      - recordStatus
      type: object
      properties:
        sourcedId:
          type: string
          description: "The sourcedId of the object. This is the interoperability\
            \ identifier that systems will refer to when making API calls, or when\
            \ needing to identify an object. Systems SHOULD be able to map whichever\
            \ local ids (e.g. database key fields) they use to sourcedId. The sourcedId\
            \ of an object MUST be an anonymized or pseudonymized identifier of an\
            \ entity and as such will not contain Personally Identifiable Information\
            \ (PII) or Personal Data (PD)."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.guid.class
        extensions:
          minItems: 0
          type: array
          description: A container for extension objects.
          items:
            $ref: '#/components/schemas/affiliationExtensions'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.affiliationextensions.class
        role:
          description: The role of the associated person in the given context.
          anyOf:
          - type: string
            enum:
            - member
            - chair
            - staff
            - student
            - administrator
            - aide
            - guardian
            - parent
            - proctor
            - relative
            - teacher
            - advisor
            - teachingAssistant
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.roletypeenum.class
        recordStatus:
          type: string
          description: "The status of this record. A record 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 required to do so."
          enum:
          - active
          - deleted
          - inactive
          x-srcprop-pid: org.1edtech.eduapi.v1p0.recordstatustypeenum.class
        dateLastModified:
          type: string
          description: A timestamp describing when this record was last modified.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        affiliationStatus:
          description: The status of the person's affiliation with the organization.
            This is based upon an enumerated vocabulary
          anyOf:
          - type: string
            enum:
            - active
            - inactive
            - auditing
            - withdrawn
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.affiliationstatusenum.class
        endDate:
          type: string
          description: The end date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        person:
          type: string
          description: A reference to an Edu-API Person.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.personguidref.class
        organization:
          type: string
          description: A reference to an Edu-API Organization.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.organizationguidref.class
        startDate:
          type: string
          description: The start date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
      additionalProperties: false
      description: A container that describes an Edu-API persons relationships to
        organizations; including their role(s) and the time frames those roles are
        in place.
      x-class-pid: org.1edtech.eduapi.v1p0.affiliation.class
    PersonName:
      type: object
      properties:
        honorificSuffix:
          type: string
          description: "Honorific suffix(es) following a person's name (e.g. 'M.D,\
            \ PhD')."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        familyName:
          type: string
          description: "Family name. In the western world, often referred to as the\
            \ 'last name' of a person."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        givenName:
          type: string
          description: "Given name. In the western world, often referred to as the\
            \ 'first name' of a person."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        familyNamePrefix:
          type: string
          description: "Family name prefix. As used in some locales, this is the leading\
            \ part of a family name (e.g. 'de' in the name 'de Boer')."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        patronymicName:
          type: string
          description: Patronymic name.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        honorificPrefix:
          type: string
          description: "Honorific prefix(es) preceding a person's name (e.g. 'Dr',\
            \ 'Mrs' or 'Mr')."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        additionalName:
          type: string
          description: Additional name. Includes what is often referred to as 'middle
            name' in the western world.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
      additionalProperties: false
      description: "The set of parts that are used to define an Edu-API persons name,\
        \ this design attempts to account for international naming needs."
      x-class-pid: org.1edtech.eduapi.v1p0.personname.class
    EducationOffering:
      required:
      - sourcedId
      - offeringType
      - recordLanguage
      - title
      - description
      - primaryCode
      - organization
      - academicSession
      - offeringFormat
      - registrationStatus
      - startDate
      - endDate
      - recordStatus
      type: object
      properties:
        minNumberStudents:
          type: integer
          description: The minimum number of students allowed to enroll for this offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        synchronicity:
          description: An indicator of whether instructor and learner must both be
            present at the same time
          anyOf:
          - type: string
            enum:
            - hybrid
            - asynchronous
            - synchronous
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.synchronicityenum.class
        registrationStatus:
          type: string
          description: The status of the entity indicating whether it is open for
            enrollment for teachers and students. This is represented by an extensible
            enumerated vocabulary.
          enum:
          - open
          - closed
          - pending
          - waitlist
          x-srcprop-pid: org.1edtech.eduapi.v1p0.registrationstatusenum.class
        roleEnablement:
          minItems: 0
          type: array
          description: "An array to store associated dates for a course offering.\
            \ Specifically, additional important date and time offsets surrounding\
            \ when specific roles may be associated with the course offering before\
            \ or after the official start and end dates. These dates are meant to\
            \ be considered additional metadata about the course offering and applied\
            \ independent of the startDate and endDate. They are not intended to be\
            \ used to as replacements."
          items:
            $ref: '#/components/schemas/RoleEnablement'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.roleenablement.class
        offeringType:
          description: The type of education being offered. This is based on an enumerated
            vocabulary.
          anyOf:
          - type: string
            enum:
            - collection
            - course
            - component
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.educationofferingtypeenum.class
        endDate:
          type: string
          description: The end date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datez.class
        description:
          minItems: 1
          type: array
          description: A set of descriptions of the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        title:
          minItems: 1
          type: array
          description: A set of titles for the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        primaryCode:
          $ref: '#/components/schemas/IdentifierEntry'
        paceOfStudy:
          type: string
          description: The tempo that the course is taught at as a percentage of a
            normal course.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.percentage.class
        enrolledNumberStudents:
          type: integer
          description: The number of students that have already enrolled for this
            offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        academicSessionCode:
          type: string
          description: A business code that a system might use to reference an academic
            session.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        offeringFormat:
          description: The modality by which the entity is delivered. This is represented
            by an extensible enumerated vocabulary
          anyOf:
          - type: string
            enum:
            - online
            - blended
            - onGround
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.offeringformatenum.class
        dateLastModified:
          type: string
          description: A timestamp describing when this record was last modified.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        teachingLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The main language used to relay the content of the offering.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        sourcedId:
          type: string
          description: "The sourcedId of the object. This is the interoperability\
            \ identifier that systems will refer to when making API calls, or when\
            \ needing to identify an object. Systems SHOULD be able to map whichever\
            \ local ids (e.g. database key fields) they use to sourcedId. The sourcedId\
            \ of an object MUST be an anonymized or pseudonymized identifier of an\
            \ entity and as such will not contain Personally Identifiable Information\
            \ (PII) or Personal Data (PD)."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.guid.class
        otherCodes:
          minItems: 0
          type: array
          description: Human readable codes/identifiers for the entity being described
          items:
            $ref: '#/components/schemas/IdentifierEntry'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.identifierentry.class
        pendingNumberStudents:
          type: integer
          description: The number of students that have a pending enrollment request
            for this offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        recordLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The primary language used in the described entity.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        academicSession:
          type: string
          description: A reference to an Edu-API Academic Session
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.academicsessionguidref.class
        extensions:
          $ref: '#/components/schemas/educationOfferingExtensions'
        maxNumberStudents:
          type: integer
          description: The maximum number of students allowed to enroll for this offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        recordStatus:
          type: string
          description: "The status of this record. A record 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 required to do so."
          enum:
          - active
          - deleted
          - inactive
          x-srcprop-pid: org.1edtech.eduapi.v1p0.recordstatustypeenum.class
        organizationCode:
          type: string
          description: A business code used to system might use to reference an organization
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        organization:
          type: string
          description: A reference to an Edu-API Organization.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.organizationguidref.class
        locations:
          minItems: 0
          type: array
          description: A container for describing where the entity takes place. This
            could be as a description or as a geo location
          items:
            $ref: '#/components/schemas/Location'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.location.class
        startDate:
          type: string
          description: The start date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datez.class
      additionalProperties: false
      description: A description of an abstract educational offering.
      x-class-pid: org.1edtech.eduapi.v1p0.educationoffering.class
    CourseTemplate:
      required:
      - courseType
      - sourcedId
      - recordLanguage
      - title
      - description
      - primaryCode
      - organization
      - level
      - creditType
      - gradingScheme
      - recordStatus
      type: object
      properties:
        sourcedId:
          type: string
          description: "The sourcedId of the object. This is the interoperability\
            \ identifier that systems will refer to when making API calls, or when\
            \ needing to identify an object. Systems SHOULD be able to map whichever\
            \ local ids (e.g. database key fields) they use to sourcedId. The sourcedId\
            \ of an object MUST be an anonymized or pseudonymized identifier of an\
            \ entity and as such will not contain Personally Identifiable Information\
            \ (PII) or Personal Data (PD)."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.guid.class
        otherCodes:
          minItems: 0
          type: array
          description: Any number of additional human readable codes/identifiers for
            the entity being described
          items:
            $ref: '#/components/schemas/IdentifierEntry'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.identifierentry.class
        parent:
          minItems: 0
          type: array
          description: A reference to the parent EducationCollection.
          items:
            type: string
            description: A reference to an `EducationCollection` object that has an
              allocated sourcedId (`GUID`).
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.collectiontemplateguidref.class
        courseType:
          description: A representation of what the entity defines. It is based on
            an extensible enumerated vocabulary.
          anyOf:
          - type: string
            enum:
            - standard
            - honors
            - research
            - independentStudy
            - practicum
            - internship
            - studyAbroad
            - capstone
            - clinical
            - correspondence
            - fieldExperience
            - seminar
            - thesis
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.coursetypeenum.class
        level:
          description: The educational level that the entity is for. This is represented
            by an extensible enumerated vocabulary and commonly varies by institution
            and region.
          anyOf:
          - type: string
            enum:
            - graduate
            - undergraduate
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.educationlevelenum.class
        recordLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The primary language used in the described entity.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        description:
          minItems: 1
          type: array
          description: A set of descriptions of the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        title:
          minItems: 1
          type: array
          description: A set of titles for the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        primaryCode:
          $ref: '#/components/schemas/IdentifierEntry'
        creditType:
          description: Reference to what the completion of this entity counts towards.
            This is represented by an extensible enumerated vocabulary.
          anyOf:
          - type: string
            enum:
            - credit
            - nonCredit
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.credittypeenum.class
        extensions:
          $ref: '#/components/schemas/educationExtensions'
        recordStatus:
          type: string
          description: "The status of this record. A record 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 required to do so."
          enum:
          - active
          - deleted
          - inactive
          x-srcprop-pid: org.1edtech.eduapi.v1p0.recordstatustypeenum.class
        dateLastModified:
          type: string
          description: A timestamp describing when this record was last modified.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        organizationCode:
          type: string
          description: A business code used to system might use to reference an organization
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        organization:
          type: string
          description: A reference to an Edu-API Organization.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.organizationguidref.class
        gradingScheme:
          $ref: '#/components/schemas/LanguageTypedString'
        teachingLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The main language used to relay the content of the offering.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
      additionalProperties: false
      description: "A time independent description of a learning experience, such\
        \ that it may appear in a catalog."
      x-class-pid: org.1edtech.eduapi.v1p0.coursetemplate.class
    Imsx_StatusInfo:
      required:
      - imsx_codeMajor
      - imsx_severity
      type: object
      properties:
        imsx_codeMinor:
          $ref: '#/components/schemas/Imsx_CodeMinor'
        imsx_codeMajor:
          type: string
          description: The code major value (from the corresponding enumerated vocabulary).
          enum:
          - failure
          - processing
          - success
          - unsupported
          x-srcprop-pid: org.1edtech.eduapi.v1p0.imsx_codemajor.class
        imsx_description:
          type: string
          description: A human readable description supplied by the entity creating
            the status code information.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        imsx_severity:
          type: string
          description: The severity value (from the corresponding enumerated vocabulary).
          enum:
          - error
          - status
          - warning
          x-srcprop-pid: org.1edtech.eduapi.v1p0.imsx_severity.class
      additionalProperties: false
      description: This is the container for the status code and associated information
        returned within the HTTP messages received from the Service Provider.
      x-class-pid: org.1edtech.eduapi.v1p0.imsx_statusinfo.class
    CollectionTemplate:
      required:
      - collectionType
      - sourcedId
      - recordLanguage
      - title
      - description
      - primaryCode
      - organization
      - level
      - creditType
      - gradingScheme
      - recordStatus
      type: object
      properties:
        sourcedId:
          type: string
          description: "The sourcedId of the object. This is the interoperability\
            \ identifier that systems will refer to when making API calls, or when\
            \ needing to identify an object. Systems SHOULD be able to map whichever\
            \ local ids (e.g. database key fields) they use to sourcedId. The sourcedId\
            \ of an object MUST be an anonymized or pseudonymized identifier of an\
            \ entity and as such will not contain Personally Identifiable Information\
            \ (PII) or Personal Data (PD)."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.guid.class
        otherCodes:
          minItems: 0
          type: array
          description: Any number of additional human readable codes/identifiers for
            the entity being described
          items:
            $ref: '#/components/schemas/IdentifierEntry'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.identifierentry.class
        parent:
          minItems: 0
          type: array
          description: A reference to a parent EducationCollection (if present).
          items:
            type: string
            description: A reference to an `EducationCollection` object that has an
              allocated sourcedId (`GUID`).
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.collectiontemplateguidref.class
        level:
          description: The educational level that the entity is for. This is represented
            by an extensible enumerated vocabulary and commonly varies by institution
            and region.
          anyOf:
          - type: string
            enum:
            - graduate
            - undergraduate
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.educationlevelenum.class
        recordLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The primary language used in the described entity.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        description:
          minItems: 1
          type: array
          description: A set of descriptions of the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        title:
          minItems: 1
          type: array
          description: A set of titles for the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        primaryCode:
          $ref: '#/components/schemas/IdentifierEntry'
        creditType:
          description: Reference to what the completion of this entity counts towards.
            This is represented by an extensible enumerated vocabulary.
          anyOf:
          - type: string
            enum:
            - credit
            - nonCredit
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.credittypeenum.class
        collectionType:
          description: A representation of what the entity defines. It is based on
            an extensible enumerated vocabulary.
          anyOf:
          - type: string
            enum:
            - program
            - generalEducation
            - requiredCollection
            - electiveCollection
            - capstoneCollection
            - majorCollection
            - minorCollection
            - programSpecialization
            - nonDegreeCollection
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.collectiontypeenum.class
        extensions:
          $ref: '#/components/schemas/educationExtensions'
        recordStatus:
          type: string
          description: "The status of this record. A record 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 required to do so."
          enum:
          - active
          - deleted
          - inactive
          x-srcprop-pid: org.1edtech.eduapi.v1p0.recordstatustypeenum.class
        dateLastModified:
          type: string
          description: A timestamp describing when this record was last modified.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        organizationCode:
          type: string
          description: A business code used to system might use to reference an organization
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        organization:
          type: string
          description: A reference to an Edu-API Organization.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.organizationguidref.class
        gradingScheme:
          $ref: '#/components/schemas/LanguageTypedString'
        teachingLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The main language used to relay the content of the offering.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
      additionalProperties: false
      description: "A grouping of educational units. In the context of Edu-API an\
        \ education is any kind of canonical or non-instantiated learning units that\
        \ have a structured relationship, e.g. a course. When grouped, these educational\
        \ units can be used to define such concepts as programs of study."
      x-class-pid: org.1edtech.eduapi.v1p0.collectiontemplate.class
    ComponentOffering:
      required:
      - offeringType
      - component
      - sourcedId
      - recordLanguage
      - title
      - description
      - primaryCode
      - organization
      - academicSession
      - offeringFormat
      - registrationStatus
      - startDate
      - endDate
      - recordStatus
      type: object
      properties:
        minNumberStudents:
          type: integer
          description: The minimum number of students allowed to enroll for this offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        synchronicity:
          description: An indicator of whether instructor and learner must both be
            present at the same time
          anyOf:
          - type: string
            enum:
            - hybrid
            - asynchronous
            - synchronous
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.synchronicityenum.class
        parent:
          minItems: 0
          type: array
          description: A reference to the parent courseOffering.
          items:
            type: string
            description: A reference to a `CourseOffering` object that has an allocated
              sourcedId (`GUID`).
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.courseofferingguidref.class
        registrationStatus:
          type: string
          description: The status of the entity indicating whether it is open for
            enrollment for teachers and students. This is represented by an extensible
            enumerated vocabulary.
          enum:
          - open
          - closed
          - pending
          - waitlist
          x-srcprop-pid: org.1edtech.eduapi.v1p0.registrationstatusenum.class
        roleEnablement:
          minItems: 0
          type: array
          description: "An array to store associated dates for a course offering.\
            \ Specifically, additional important date and time offsets surrounding\
            \ when specific roles may be associated with the course offering before\
            \ or after the official start and end dates. These dates are meant to\
            \ be considered additional metadata about the course offering and applied\
            \ independent of the startDate and endDate. They are not intended to be\
            \ used to as replacements."
          items:
            $ref: '#/components/schemas/RoleEnablement'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.roleenablement.class
        offeringType:
          description: A representation of what the entity defines. It is based on
            an extensible enumerated vocabulary.
          anyOf:
          - type: string
            enum:
            - individualizedInstruction
            - integratedLectureLab
            - laboratory
            - lecture
            - practicum
            - recitation
            - research
            - seminar
            - independentStudy
            - fieldExperience
            - exam
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.componenttypeenum.class
        endDate:
          type: string
          description: The end date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datez.class
        description:
          minItems: 1
          type: array
          description: A set of descriptions of the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        title:
          minItems: 1
          type: array
          description: A set of titles for the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        primaryCode:
          $ref: '#/components/schemas/IdentifierEntry'
        paceOfStudy:
          type: string
          description: The tempo that the course is taught at as a percentage of a
            normal course.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.percentage.class
        enrolledNumberStudents:
          type: integer
          description: The number of students that have already enrolled for this
            offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        academicSessionCode:
          type: string
          description: A business code that a system might use to reference an academic
            session.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        offeringFormat:
          description: The modality by which the entity is delivered. This is represented
            by an extensible enumerated vocabulary
          anyOf:
          - type: string
            enum:
            - online
            - blended
            - onGround
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.offeringformatenum.class
        dateLastModified:
          type: string
          description: A timestamp describing when this record was last modified.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        teachingLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The main language used to relay the content of the offering.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        sourcedId:
          type: string
          description: "The sourcedId of the object. This is the interoperability\
            \ identifier that systems will refer to when making API calls, or when\
            \ needing to identify an object. Systems SHOULD be able to map whichever\
            \ local ids (e.g. database key fields) they use to sourcedId. The sourcedId\
            \ of an object MUST be an anonymized or pseudonymized identifier of an\
            \ entity and as such will not contain Personally Identifiable Information\
            \ (PII) or Personal Data (PD)."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.guid.class
        otherCodes:
          minItems: 0
          type: array
          description: Human readable codes/identifiers for the entity being described
          items:
            $ref: '#/components/schemas/IdentifierEntry'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.identifierentry.class
        pendingNumberStudents:
          type: integer
          description: The number of students that have a pending enrollment request
            for this offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        recordLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The primary language used in the described entity.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        academicSession:
          type: string
          description: A reference to an Edu-API Academic Session
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.academicsessionguidref.class
        component:
          type: string
          description: A reference to the componentTemplate.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.componenttemplateguidref.class
        extensions:
          $ref: '#/components/schemas/educationOfferingExtensions'
        maxNumberStudents:
          type: integer
          description: The maximum number of students allowed to enroll for this offering
          format: int32
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.integer.class
        recordStatus:
          type: string
          description: "The status of this record. A record 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 required to do so."
          enum:
          - active
          - deleted
          - inactive
          x-srcprop-pid: org.1edtech.eduapi.v1p0.recordstatustypeenum.class
        organizationCode:
          type: string
          description: A business code used to system might use to reference an organization
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        organization:
          type: string
          description: A reference to an Edu-API Organization.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.organizationguidref.class
        locations:
          minItems: 0
          type: array
          description: A container for describing where the entity takes place. This
            could be as a description or as a geo location
          items:
            $ref: '#/components/schemas/Location'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.location.class
        startDate:
          type: string
          description: The start date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datez.class
      additionalProperties: false
      description: "A subsection of a courseOffering. It may be a lesson or separately\
        \ enrollable unit within a courseOffering. For example, Biology 101 may consist\
        \ of a Lecture component offering and a Lab component offering"
      x-class-pid: org.1edtech.eduapi.v1p0.componentoffering.class
    Agents:
      required:
      - agentType
      - person
      type: object
      properties:
        agentType:
          description: A description of the relationship between the agent and the
            person the are an agent for. This is based on an extensible enumerated
            vocabulary.
          anyOf:
          - type: string
            enum:
            - parent
            - guardian
            - emergencyContact
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.agenttypeenum.class
        person:
          type: string
          description: A reference to an Edu-API person. This represents the person
            acting in an agency capacity.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.personguidref.class
        domain:
          type: string
          description: The context within which the person can act as an agent in.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        description:
          minItems: 0
          type: array
          description: A set of descriptions of the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
      additionalProperties: false
      description: A container with the set of Edu-API persons that can act on behalf
        of the person in question. This includes description of the type of relationship
        exists and the context it is applicable in.
      x-class-pid: org.1edtech.eduapi.v1p0.agents.class
    RoleEnablement:
      required:
      - role
      type: object
      properties:
        role:
          description: The role of the associated person in the given context.
          anyOf:
          - type: string
            enum:
            - member
            - chair
            - staff
            - student
            - administrator
            - aide
            - guardian
            - parent
            - proctor
            - relative
            - teacher
            - advisor
            - teachingAssistant
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.roletypeenum.class
        endDate:
          type: string
          description: The end date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        startDate:
          type: string
          description: The start date of the associated event.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
      additionalProperties: false
      description: "An array to store associated dates for a entity. Specifically,\
        \ additional important date and time offsets surrounding when specific roles\
        \ may be associated with the course offering before or after the official\
        \ start and end dates. These dates are meant to be considered additional metadata\
        \ about the course offering and applied independent of the startDate and endDate.\
        \ They are not intended to be used to as replacements."
      x-class-pid: org.1edtech.eduapi.v1p0.roleenablement.class
    OptionallyTypedEmail:
      required:
      - email
      type: object
      properties:
        emailType:
          description: The type of email address.
          anyOf:
          - type: string
            enum:
            - homeEmail
            - workEmail
            - iceEmail
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.emailtypeenum.class
        email:
          type: string
          description: An email address.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.emailaddress.class
      additionalProperties: false
      description: An optionally typed email address.
      x-class-pid: org.1edtech.eduapi.v1p0.optionallytypedemail.class
    affiliationExtensions:
      type: object
      properties: {}
      additionalProperties: true
      description: Extension properties related to affiliations
      x-class-pid: org.1edtech.eduapi.v1p0.affiliationextensions.class
    enrollmentExtensions:
      type: object
      properties: {}
      additionalProperties: true
      description: Extension properties related to enrollments
      x-class-pid: org.1edtech.eduapi.v1p0.enrollmentextensions.class
    organizationExtensions:
      type: object
      properties: {}
      additionalProperties: true
      description: Extension properties related to education organizations
      x-class-pid: org.1edtech.eduapi.v1p0.organizationextensions.class
    GeoCoordinates:
      required:
      - latitude
      - longitude
      type: object
      properties:
        latitude:
          type: number
          description: "The latitude of the location [[WGS-84]]."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.float.class
        longitude:
          type: number
          description: "The longitude of the location [[WGS-84]]."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.float.class
      additionalProperties: false
      description: The geographic coordinates of a location.
      x-class-pid: org.1edtech.eduapi.v1p0.geocoordinates.class
    educationExtensions:
      type: object
      properties: {}
      additionalProperties: true
      description: Extension properties related to education templates
      x-class-pid: org.1edtech.eduapi.v1p0.educationextensions.class
    OptionallyTypedPhone:
      required:
      - phone
      type: object
      properties:
        phoneType:
          description: The type of address. This is based on an extensible enumerated
            vocabulary.
          anyOf:
          - type: string
            enum:
            - homePhone
            - workPhone
            - icePhone
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.phonetypeenum.class
        phone:
          type: string
          description: A phone number.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.phonenumber.class
      additionalProperties: false
      description: An optionally typed phone number.
      x-class-pid: org.1edtech.eduapi.v1p0.optionallytypedphone.class
    Person:
      required:
      - sourcedId
      - recordLanguage
      - recordStatus
      type: object
      properties:
        sourcedId:
          type: string
          description: "The sourcedId of the object. This is the interoperability\
            \ identifier that systems will refer to when making API calls, or when\
            \ needing to identify an object. Systems SHOULD be able to map whichever\
            \ local ids (e.g. database key fields) they use to sourcedId. The sourcedId\
            \ of an object MUST be an anonymized or pseudonymized identifier of an\
            \ entity and as such will not contain Personally Identifiable Information\
            \ (PII) or Personal Data (PD)."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.guid.class
        otherEmails:
          minItems: 0
          type: array
          description: Additional email addresses of a subject.
          items:
            $ref: '#/components/schemas/TypedEmail'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.typedemail.class
        placeOfBirth:
          type: string
          description: The place of birth. Commonly a city or municipality.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        gender:
          description: The gender of the individual. It is based on an extensible
            enumerated vocabulary.
          anyOf:
          - type: string
            enum:
            - male
            - female
            - unspecified
            - other
          - pattern: "(ext:)[a-zA-Z0-9\\.\\-_]+"
            type: string
          x-srcprop-pid: org.1edtech.eduapi.v1p0.genderenum.class
        otherAddresses:
          minItems: 0
          type: array
          description: A list of other addresses.
          items:
            $ref: '#/components/schemas/TypedAddress'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.typedaddress.class
        dateOfDeath:
          type: string
          description: "The date of death. The presence of this property means that\
            \ the person being described is known to be deceased. In scenarios where\
            \ this conflicts with the `isDeceased` flag, this property takes precedence\
            \ and consuming systems should interpret that as the person being deceased."
          format: date
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.date.class
        recordLanguage:
          pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
          type: string
          description: The primary language used in the described entity.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        formattedName:
          type: string
          description: "the long form formatted name, this will often be dependent\
            \ on region or system requirements."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.nfcstring.class
        dateOfBirth:
          type: string
          description: The date of birth.
          format: date
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.date.class
        agents:
          minItems: 0
          type: array
          description: A container used that define relationships between an Edu-API
            person and other Edu-API Persons who can represent or act on behalf of
            them. This includes a way to describe the type of relationship between
            the two people. E.g. Parents or Guardians often serve as the agent for
            a student.
          items:
            $ref: '#/components/schemas/Agents'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.agents.class
        legalName:
          $ref: '#/components/schemas/PersonName'
        isDeceased:
          type: boolean
          description: "Used to identify if the person being described is alive or\
            \ dead. If this property is absent or set to `false` but the `dateOfDeath`\
            \ property is set, then the consuming system should interpret that as\
            \ the person being deceased."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.boolean.class
        primaryPhone:
          $ref: '#/components/schemas/OptionallyTypedPhone'
        extensions:
          $ref: '#/components/schemas/personExtensions'
        otherIdentifiers:
          minItems: 0
          type: array
          description: A list of additional identifiers for the described entity.
          items:
            $ref: '#/components/schemas/IdentifierEntry'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.identifierentry.class
        otherNames:
          minItems: 0
          type: array
          description: A list of other names for this person.
          items:
            $ref: '#/components/schemas/PersonNameEntry'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.personnameentry.class
        dateLastModified:
          type: string
          description: A timestamp describing when this record was last modified.
          format: date-time
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.datetimez.class
        recordStatus:
          type: string
          description: "The status of this record. A record 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 required to do so."
          enum:
          - active
          - deleted
          - inactive
          x-srcprop-pid: org.1edtech.eduapi.v1p0.recordstatustypeenum.class
        countryOfBirth:
          type: string
          description: The country of birth.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.primitive.string.class
        otherPhones:
          minItems: 0
          type: array
          description: A list of other phone numbers
          items:
            $ref: '#/components/schemas/TypedPhone'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.typedphone.class
        pronouns:
          minItems: 0
          type: array
          description: "Pronoun(s) by which this person is referenced. Examples (in\
            \ the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs',\
            \ 'ze/hir/hir', 'xe/xir', or a statement that the person's name should\
            \ be used instead of any pronoun."
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
        languagesSpoken:
          minItems: 0
          type: array
          description: The list of languages that this person speaks.
          items:
            pattern: "^[a-z]{2,4}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$"
            type: string
            description: "A language code [[BCP47]]."
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.languagecode.class
        primaryAddress:
          $ref: '#/components/schemas/OptionallyTypedAddress'
        primaryEmail:
          $ref: '#/components/schemas/OptionallyTypedEmail'
      additionalProperties: false
      description: "A Person represents a human being, alive or deceased, real or\
        \ imaginary."
      x-class-pid: org.1edtech.eduapi.v1p0.person.class
    Location:
      type: object
      properties:
        identifier:
          type: string
          description: An identifier.
          x-srcprop-pid: org.1edtech.eduapi.v1p0.derived.identifier.class
        geoLocation:
          $ref: '#/components/schemas/GeoCoordinates'
        description:
          minItems: 0
          type: array
          description: A set of descriptions of the associated entity with a designated
            language for each entry.
          items:
            $ref: '#/components/schemas/LanguageTypedString'
          x-srcprop-pid: org.1edtech.eduapi.v1p0.languagetypedstring.class
      additionalProperties: false
      description: A container for describing the location an entity takes place at.
      x-class-pid: org.1edtech.eduapi.v1p0.location.class
  parameters:
    filter:
      name: filter
      in: query
      description: Specifies that the returned collection should be filtered using
        the supplied criteria.
      required: false
      allowEmptyValue: false
      style: form
      schema:
        type: string
        description: Character strings.
    offset:
      name: offset
      in: query
      description: "Specifices the number of the first record to be supplied in the\
        \ segmented response message. Default: 0."
      required: false
      allowEmptyValue: false
      style: form
      schema:
        minimum: 0
        type: integer
        format: int32
    limit:
      name: limit
      in: query
      description: "Specifices the download segmentation value i.e. the maximum number\
        \ of records to be contained in the response. Default: 100."
      required: false
      allowEmptyValue: false
      style: form
      schema:
        minimum: 1
        type: integer
        format: int32
    orderBy:
      name: orderBy
      in: query
      description: Specifies whether the collection should be ordered ascending (asc)
        or descending (desc).
      required: false
      allowEmptyValue: false
      style: form
      schema:
        type: string
        description: Character strings.
    sort:
      name: sort
      in: query
      description: Specifies that the collection should be sorted on the given data
        field value. The form of ordering is implementation dependent if the 'orderBy'
        attribute is not used.
      required: false
      allowEmptyValue: false
      style: form
      schema:
        type: string
        description: Character strings.
  headers:
    X-Total-Count:
      description: The total number of resources that are available to be returned
      schema:
        type: integer
        format: int32
  securitySchemes:
    CCGSecurity:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://www.example.com/eduapi/ccg/token/
          scopes:
            http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly: Default
              read-only scope. Enables access to all GET operations except those in
              PersonManagement
            http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly.privacy: Enables
              access to all GET operations in PersonManagement
  links:
    next:
      operationId: getEducationTemplates
      parameters:
        limit: $request.path.limit
        offset: $request.path.offset
      description: Get the next set of resources i.e. from offset to offset+limit
    last:
      operationId: getEducationTemplates
      parameters:
        limit: $request.path.limit
        offset: $request.path.offset
      description: Get the last set of resources i.e. from offset to end
    prev:
      operationId: getEducationTemplates
      parameters:
        limit: $request.path.limit
        offset: $request.path.offset
      description: Get the previous set of resources i.e. from last_offset to last_offset+limit
    first:
      operationId: getEducationTemplates
      parameters:
        limit: $request.path.limit
        offset: $request.path.offset
      description: Get the first set of resources i.e. from first to limit
