openapi: 3.1.0
info:
  title: Caliper API
  version: 1.0.0
  description: >-
    # Documentation


    ## Overview


    The Alpha Caliper API is a service that receives, validates, and processes
    learning events conforming to the [IMS Caliper Analytics®
    specification](https://www.imsglobal.org/spec/caliper/v1p2). 

    This API enables educational technology platforms to track and analyze
    student engagement, learning activities, and assessment outcomes.


    ## Key Features


    - **Event Validation**: Ensures all submitted events conform to the Caliper
    Analytics specification

    - **Event Processing**: Processes and stores valid events for analytics

    - **Multiple Event Profiles**: Supports various Caliper event profiles


    ## Getting Started


    To use this API, you need to:


    1. **Familiarize with Caliper**: Understand the [IMS Caliper Analytics
    specification](https://www.imsglobal.org/spec/caliper/v1p2)

    2. **Format Your Events**: Structure your events according to the Caliper
    data model

    3. **Submit Events**: Send events to our API endpoints wrapped in a Caliper
    envelope


    ---


    # Frequently Asked Questions



    ## Purpose of the API


    Q: **What is the purpose of the Alpha Caliper API?**


    A: Receive, validate and store learning events conforming to the [IMS
    Caliper Analytics®
    specification](https://www.imsglobal.org/spec/caliper/v1p2).


    ---


    ## Out of scope


    Q: **What is not the (direct) purpose of the Alpha Caliper API?**


    A: 


    - Generate insights from events. (ETL)

    - Provide a learning analytics platform.

    - Provide a learning content management system.

    - Raw crud apis.


    ---


    ## Insights generation


    Q: **Does Caliper have an ETL layer to extract insights from the events
    sent?**


    A: No, caliper is only responsible for storing the events, other services
    may implement an ETL layer to extract insights from specific events.

    Caliper acts like a data warehouse, it's purpose is to store events and make
    them available for reporting and analytics.


    ---


    ## Specific Use-cases


    Q: **Which events should I send?**


    A: The Alpha Caliper API supports the entire Caliper specification. We also
    extended the base spec to contain specific events for the Timeback platform.


    - If you are using the Timeback platform, take a look at the section below
    for supported use-cases.

    - If your use-case is not supported, please contact us to discuss how we can
    extend the spec to support your use-case.

    - If you want your events to be processed by the Alpha Analytics API (ETL),
    you need to conform to the TimeBack Profile and it's supported events.


    ---


    # Timeback Platform Users


    ## Guide


    If you are a user of the timeback platform you may have these questions:


    - Q: **How do I give XP to my students?**

    - Q: **How do I record time spent on activities?**

    - Q: **How do I provided information about total questions, correct answers,
    etc?**


    A: Use The **Timeback Profile**, which is a profile that extends the base
    Caliper specification to support the Timeback platform.


    It contains the following events:


    - **TimebackActivityEvent** - used to record student interaction with an
    activity.

    - **TimebackTimeSpentEvent** - used to record the time spent on an activity.



    See the timeback docs for more information:


    [Timeback
    Docs](https://caliper.alpha-1edtech.ai/scalar?api=timeback-events-api)


    ---


    # Authentication


    ## Guide


    Most endpoints require authentication using the `Authorization: Bearer
    <token>` header.


    The token can be obtained with:


    ```

    curl -X POST
    https://prod-beyond-timeback-api-2-idp.auth.us-east-1.amazoncognito.com/oauth2/token
    \

    -H "Content-Type: application/x-www-form-urlencoded" \

    -d
    "grant_type=client_credentials&client_id=<your-client-id>&client_secret=<your-client-secret>"

    ```


    Use the correct IDP server depending on the environment you're using.


    IDP Server for this environment:

    ```text
      https://prod-beyond-timeback-api-2-idp.auth.us-east-1.amazoncognito.com
    ```


    Reach out to the platform team to get a client/secret pair for your
    application.
servers:
  - url: https://caliper.alpha-1edtech.ai
    description: Caliper API
tags:
  - name: Caliper Events
    description: >-
      These are the endpoints to use when submitting and validating Caliper
      Events
  - name: Jobs
    description: These are the endpoints to use when checking the status of background jobs
security:
  - OAuth2: []
paths:
  /jobs/{jobId}/status:
    get:
      tags:
        - Jobs
      summary: Get job status
      description: >-
        Returns the current status of a job including processing progress and
        assigned event IDs if completed
      parameters:
        - name: jobId
          in: path
          required: true
          schema:
            type: string
          description: The unique identifier of the job
      responses:
        '200':
          description: Job status retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  job:
                    type: object
                    properties:
                      id:
                        type: string
                        example: '6'
                      state:
                        type: string
                        example: completed
                      returnValue:
                        type: object
                        properties:
                          status:
                            type: string
                            example: success
                          results:
                            type: array
                            items:
                              type: object
                              properties:
                                allocatedId:
                                  type: string
                                  example: '7'
                                externalId:
                                  type: string
                                  example: >-
                                    urn:uuid:cadcb833-551e-487b-8213-007f89e74ddf
                              required:
                                - allocatedId
                                - externalId
                        required:
                          - status
                          - results
                      processedOn:
                        type:
                          - string
                          - 'null'
                        example: '2025-07-28T15:15:28.330Z'
                    required:
                      - id
                      - state
                      - returnValue
                      - processedOn
                required:
                  - job
        '404':
          description: Job not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: error
                  message:
                    type: string
                  errors: {}
                required:
                  - status
                  - message
  /caliper/event:
    post:
      tags:
        - Caliper Events
      summary: Create Caliper Events
      description: >-
        Receives and processes Caliper events wrapped in an envelope. Events
        will be validated against the IMS Caliper Analytics specification and
        stored for further processing and analysis.
      requestBody:
        description: The Caliper envelope containing events to process
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Envelope'
            examples:
              example1: &ref_0
                summary: 1 - Generic Event Example
                description: Example of a basic Generic event
                value:
                  sensor: https://alpharead.alpha.school
                  sendTime: '2026-03-10T06:04:05.272Z'
                  dataVersion: http://purl.imsglobal.org/ctx/caliper/v1p2
                  data:
                    - id: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
                      type: Event
                      actor: https://example.edu/users/554433
                      action: Created
                      object: >-
                        https://example.edu/terms/201801/courses/7/sections/1/assignments/1
                      eventTime: '2023-08-15T14:12:00.000Z'
              example2: &ref_1
                summary: 2 - Tool Use Event Example
                description: Example of a basic Tool Use event
                value:
                  sensor: https://alpharead.alpha.school
                  sendTime: '2026-03-10T06:04:05.272Z'
                  dataVersion: http://purl.imsglobal.org/ctx/caliper/v1p2
                  data:
                    - '@context': http://purl.imsglobal.org/ctx/caliper/v1p2
                      id: urn:uuid:7e10e4f3-a0d8-4430-95bd-783ffae4d916
                      type: ToolUseEvent
                      profile: ToolUseProfile
                      actor:
                        id: https://example.edu/users/554433
                        type: Person
                      action: Used
                      object:
                        id: https://example.edu
                        type: SoftwareApplication
                      eventTime: '2016-11-15T10:15:00.000Z'
                      edApp: https://example.edu
                      group:
                        id: https://example.edu/terms/201601/courses/7/sections/1
                        type: CourseSection
                        extensions:
                          courseNumber: CPS 435-01
                          academicSession: Fall 2016
              example3: &ref_2
                summary: 3 - Annotation Event Example
                description: Example of a basic Annotation event
                value:
                  sensor: https://alpharead.alpha.school
                  sendTime: '2026-03-10T06:04:05.272Z'
                  dataVersion: http://purl.imsglobal.org/ctx/caliper/v1p2
                  data:
                    - '@context': http://purl.imsglobal.org/ctx/caliper/v1p2
                      id: urn:uuid:7e10e4f3-a0d8-4430-95bd-783ffae4d916
                      type: AnnotationEvent
                      profile: AnnotationProfile
                      actor:
                        id: https://example.edu/users/554433
                        type: Person
                      action: Highlighted
                      object:
                        id: https://example.edu/terms/201801/courses/7/resources/1
                        type: DigitalResource
                      generated:
                        id: https://example.edu/users/554433/annotations/1
                        type: HighlightAnnotation
                        annotator: https://example.edu/users/554433
                        annotated: https://example.edu/terms/201801/courses/7/resources/1
                        selection:
                          type: TextPositionSelector
                          start: 412
                          end: 795
                      eventTime: '2023-08-01T06:00:00.000Z'
                      edApp: https://example.edu/apps/annotation-tool
              example4: &ref_3
                summary: 4 - Tool Use Generated Metrics
                description: Example of a basic Tool Use event with generated metrics
                value:
                  sensor: https://alpharead.alpha.school
                  sendTime: '2026-03-10T06:04:05.272Z'
                  dataVersion: http://purl.imsglobal.org/ctx/caliper/v1p2
                  data:
                    - id: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
                      type: ToolUseEvent
                      profile: ToolUseProfile
                      actor:
                        id: >-
                          https:/your-app.domain/users/fdeb7d92-b3a4-4b6c-a201-cb590b43bce1
                        type: Person
                        extensions:
                          email: noemail@student.com
                      action: Used
                      object:
                        id: https:/your-app.domain
                        name: Learning
                        type: SoftwareApplication
                      generated:
                        id: >-
                          https:/your-app.domain/session/adac039d-4ff4-48b9-bfb0-8ec37ac9d1ea
                        type: AggregateMeasureCollection
                        items:
                          - id: >-
                              https:/your-app.domain/session/adac039d-4ff4-48b9-bfb0-8ec37ac9d1ea
                            type: AggregateMeasure
                            metric: Facts Learnt
                            metricValue: 2
                          - id: >-
                              https:/your-app.domain/session/adac039d-4ff4-48b9-bfb0-8ec37ac9d1ea
                            type: AggregateMeasure
                            metric: Facts Practiced
                            metricValue: 4
                          - id: >-
                              https:/your-app.domain/session/adac039d-4ff4-48b9-bfb0-8ec37ac9d1ea
                            type: AggregateMeasure
                            metric: Facts Assessed
                            metricValue: 3
                      session:
                        id: >-
                          https:/your-app.domain/session/adac039d-4ff4-48b9-bfb0-8ec37ac9d1ea
                        type: Session
                        extensions:
                          session_id: adac039d-4ff4-48b9-bfb0-8ec37ac9d1ea
                      eventTime: '2025-03-25T14:12:00.000Z'
      responses:
        '200':
          description: The events were processed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: success
                  message:
                    type: string
                  errors: {}
                required:
                  - status
                  - message
        '400':
          description: The request payload is invalid
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: error
                  message:
                    type: string
                  errors: {}
                required:
                  - status
                  - message
  /caliper/event/validate:
    post:
      tags:
        - Caliper Events
      summary: Validate Caliper Events
      description: Validate Caliper Events
      requestBody:
        description: The Caliper envelope containing events to validate
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Envelope'
            examples:
              example1: *ref_0
              example2: *ref_1
              example3: *ref_2
              example4: *ref_3
      responses:
        '200':
          description: The request payload is valid
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: success
                  message:
                    type: string
                  errors: {}
                required:
                  - status
                  - message
        '400':
          description: The request payload is invalid
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: error
                  message:
                    type: string
                  errors: {}
                required:
                  - status
                  - message
  /caliper/events:
    get:
      tags:
        - Caliper Events
      summary: List Caliper Events
      description: List Caliper Events
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: number
        - name: offset
          in: query
          required: false
          schema:
            type: number
        - name: sensor
          in: query
          required: false
          schema:
            type: string
        - name: startDate
          in: query
          required: false
          schema:
            type: string
        - name: endDate
          in: query
          required: false
          schema:
            type: string
        - name: actorId
          in: query
          required: false
          schema:
            type: string
        - name: actorEmail
          in: query
          required: false
          schema:
            type: string
        - name: extensions.*
          in: query
          required: false
          schema:
            type: string
          description: >-
            Custom extension fields to filter by. Use the format
            `extensions.fieldName=value` You can use letters, numbers, hyphen
            and underscore.
      responses:
        '200':
          description: The events were retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: success
                  message:
                    type: string
                  errors: {}
                required:
                  - status
                  - message
        '400':
          description: The request payload is invalid
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: error
                  message:
                    type: string
                  errors: {}
                required:
                  - status
                  - message
  /caliper/events/:externalId:
    get:
      tags:
        - Caliper Events
      summary: Get Caliper Event by External ID
      description: Get Caliper Event by External ID
      responses:
        '200':
          description: The event was retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: success
                  message:
                    type: string
                  errors: {}
                required:
                  - status
                  - message
        '404':
          description: Event not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    const: error
                  message:
                    type: string
                  errors: {}
                required:
                  - status
                  - message
components:
  securitySchemes:
    MCP:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: >-
            https://prod-beyond-timeback-api-2-idp.auth.us-east-1.amazoncognito.com/oauth2/authorize
          tokenUrl: >-
            https://prod-beyond-timeback-api-2-idp.auth.us-east-1.amazoncognito.com/oauth2/token
          scopes:
            https://purl.imsglobal.org/spec/caliper/v1p1/scope/webhook.readonly: Webhook readonly scope (can read webhooks)
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          scopes:
            https://purl.imsglobal.org/spec/caliper/v1p1/scope/admin: Admin scope (can call all endpoints)
            https://purl.imsglobal.org/spec/caliper/v1p1/scope/webhook.create: Webhook create scope (can create and update webhooks)
            https://purl.imsglobal.org/spec/caliper/v1p1/scope/webhook.readonly: Webhook readonly scope (can read webhooks)
            https://purl.imsglobal.org/spec/caliper/v1p1/scope/event.create: Event create scope (can create events)
          tokenUrl: >-
            https://prod-beyond-timeback-api-2-idp.auth.us-east-1.amazoncognito.com/oauth2/token
  schemas:
    Envelope:
      type: object
      properties:
        sensor:
          type: string
          format: uri
          description: >-
            The sensor.id that uniquely identifies the Caliper Sensor. Should be
            in the form of an IRI
          example: https://example.edu/sensors/1
        sendTime:
          type: string
          format: date-time
          description: >-
            The time the data was sent, formatted as an ISO 8601 date and time
            in UTC
          example: '2023-08-15T14:12:00.000Z'
        dataVersion:
          type: string
          const: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: >-
            The data format version. Indicates which version of the Caliper
            specification governs the form of the entities and events
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        data:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/Event'
              - $ref: '#/components/schemas/Entity'
          minItems: 1
          description: >-
            The data payload, consisting of an array where items are Caliper
            Events or Entities
          example:
            - id: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
              type: Event
              actor: https://example.edu/users/554433
              action: Created
              object: >-
                https://example.edu/terms/201801/courses/7/sections/1/assignments/1
              eventTime: '2023-08-15T14:12:00.000Z'
      required:
        - sensor
        - sendTime
        - dataVersion
        - data
      description: |-
        # Envelope

        Represents a package containing events and entity data for ingestion
    Event:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          description: >-
            The type of this event. Must match the term specified in the Caliper
            information model
          example: Event
        actor:
          type:
            - string
            - object
          description: The agent who initiated the event
          example: https://example.edu/users/554433
        action:
          type: string
          description: The action or predicate that binds the actor to the object
          example: Created
        object:
          type:
            - string
            - object
          description: The object of the interaction
          example: https://example.edu/terms/201801/courses/7/sections/1/assignments/1
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          allOf:
            - $ref: '#/components/schemas/AllProfiles'
          description: The profile that governs interpretation of this event
          example: AnnotationProfile
        edApp:
          type: &ref_18
            - string
            - object
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: &ref_28
            - string
            - object
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type: &ref_19
            - string
            - object
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: &ref_20
            - string
            - object
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: &ref_21
            - string
            - object
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: &ref_22
            id: https://example.edu/terms/201801/courses/7/sections/1
            type: Organization
            extensions:
              info: other params should follow organization schema
        membership:
          type: &ref_23
            - string
            - object
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: &ref_24
            - string
            - object
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: &ref_25
            - string
            - object
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: &ref_26
            customField: customValue
      required:
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: |-
        # Event

        Represents a Caliper Event that describes learning activities
    AllProfiles:
      type: string
      enum:
        - AnnotationProfile
        - AssessmentProfile
        - ToolUseProfile
        - GeneralProfile
        - FeedbackProfile
        - MediaProfile
        - SurveyProfile
        - ResourceManagementProfile
        - ForumProfile
        - AssignableProfile
        - GradingProfile
        - ReadingProfile
        - SessionProfile
        - SearchProfile
        - ToolLaunchProfile
        - TimebackProfile
      description: >-
        # Supported Profiles


        These are the profiles that this API currently supports.


        See the
        [specification](https://www.imsglobal.org/spec/caliper/v1p2#profiles-0)
        for a list of all profiles.
    AllAgents:
      oneOf:
        - $ref: '#/components/schemas/Agent'
        - $ref: '#/components/schemas/Person'
        - $ref: '#/components/schemas/Organization'
        - $ref: '#/components/schemas/Group'
        - $ref: '#/components/schemas/CourseOffering'
        - $ref: '#/components/schemas/CourseSection'
        - $ref: '#/components/schemas/SoftwareApplication'
        - $ref: '#/components/schemas/TimebackUser'
      discriminator:
        propertyName: type
        mapping:
          Agent: '#/components/schemas/Agent'
          Person: '#/components/schemas/Person'
          Organization: '#/components/schemas/Organization'
          Group: '#/components/schemas/Group'
          CourseOffering: '#/components/schemas/CourseOffering'
          CourseSection: '#/components/schemas/CourseSection'
          SoftwareApplication: '#/components/schemas/SoftwareApplication'
          TimebackUser: '#/components/schemas/TimebackUser'
      description: >-
        # Supported Agents


        These are the agents that this API currently supports.


        See the
        [specification](https://www.imsglobal.org/spec/caliper/v1p2#Agent) for a
        list of all agents.
    AllAnnotations:
      oneOf:
        - $ref: '#/components/schemas/Annotation'
        - $ref: '#/components/schemas/BookmarkAnnotation'
        - $ref: '#/components/schemas/HighlightAnnotation'
        - $ref: '#/components/schemas/SharedAnnotation'
        - $ref: '#/components/schemas/TagAnnotation'
      discriminator:
        propertyName: type
        mapping:
          Annotation: '#/components/schemas/Annotation'
          BookmarkAnnotation: '#/components/schemas/BookmarkAnnotation'
          HighlightAnnotation: '#/components/schemas/HighlightAnnotation'
          SharedAnnotation: '#/components/schemas/SharedAnnotation'
          TagAnnotation: '#/components/schemas/TagAnnotation'
    AllDigitalResources:
      oneOf:
        - $ref: '#/components/schemas/DigitalResource'
        - $ref: '#/components/schemas/DigitalResourceCollection'
        - $ref: '#/components/schemas/AssignableDigitalResource'
        - $ref: '#/components/schemas/Assessment'
        - $ref: '#/components/schemas/AssessmentItem'
        - $ref: '#/components/schemas/MediaObject'
        - $ref: '#/components/schemas/AudioObject'
        - $ref: '#/components/schemas/ImageObject'
        - $ref: '#/components/schemas/VideoObject'
        - $ref: '#/components/schemas/DatetimeQuestion'
        - $ref: '#/components/schemas/OpenEndedQuestion'
        - $ref: '#/components/schemas/MultiSelectQuestion'
        - $ref: '#/components/schemas/MediaLocation'
        - $ref: '#/components/schemas/Forum'
        - $ref: '#/components/schemas/Thread'
        - $ref: '#/components/schemas/Message'
        - $ref: '#/components/schemas/Document'
        - $ref: '#/components/schemas/Chapter'
        - $ref: '#/components/schemas/Page'
        - $ref: '#/components/schemas/WebPage'
        - $ref: '#/components/schemas/Frame'
        - $ref: '#/components/schemas/Questionnaire'
        - $ref: '#/components/schemas/QuestionnaireItem'
      discriminator:
        propertyName: type
        mapping:
          DigitalResource: '#/components/schemas/DigitalResource'
          DigitalResourceCollection: '#/components/schemas/DigitalResourceCollection'
          AssignableDigitalResource: '#/components/schemas/AssignableDigitalResource'
          Assessment: '#/components/schemas/Assessment'
          AssessmentItem: '#/components/schemas/AssessmentItem'
          MediaObject: '#/components/schemas/MediaObject'
          AudioObject: '#/components/schemas/AudioObject'
          ImageObject: '#/components/schemas/ImageObject'
          VideoObject: '#/components/schemas/VideoObject'
          DatetimeQuestion: '#/components/schemas/DatetimeQuestion'
          OpenEndedQuestion: '#/components/schemas/OpenEndedQuestion'
          MultiselectQuestion: '#/components/schemas/MultiSelectQuestion'
          MediaLocation: '#/components/schemas/MediaLocation'
          Forum: '#/components/schemas/Forum'
          Thread: '#/components/schemas/Thread'
          Message: '#/components/schemas/Message'
          Document: '#/components/schemas/Document'
          Chapter: '#/components/schemas/Chapter'
          Page: '#/components/schemas/Page'
          WebPage: '#/components/schemas/WebPage'
          Frame: '#/components/schemas/Frame'
          Questionnaire: '#/components/schemas/Questionnaire'
          QuestionnaireItem: '#/components/schemas/QuestionnaireItem'
    AllScales:
      oneOf:
        - $ref: '#/components/schemas/LikertScale'
        - $ref: '#/components/schemas/MultiselectScale'
        - $ref: '#/components/schemas/NumericScale'
      discriminator:
        propertyName: type
        mapping:
          LikertScale: '#/components/schemas/LikertScale'
          MultiselectScale: '#/components/schemas/MultiselectScale'
          NumericScale: '#/components/schemas/NumericScale'
    AllResponses:
      oneOf:
        - $ref: '#/components/schemas/Response'
        - $ref: '#/components/schemas/DateTimeResponse'
        - $ref: '#/components/schemas/FillinBlankResponse'
        - $ref: '#/components/schemas/MultipleChoiceResponse'
        - $ref: '#/components/schemas/MultipleResponseResponse'
        - $ref: '#/components/schemas/MultiSelectResponse'
        - $ref: '#/components/schemas/OpenEndedResponse'
        - $ref: '#/components/schemas/RatingScaleResponse'
        - $ref: '#/components/schemas/SelectTextResponse'
        - $ref: '#/components/schemas/TrueFalseResponse'
      discriminator:
        propertyName: type
        mapping:
          Response: '#/components/schemas/Response'
          DateTimeResponse: '#/components/schemas/DateTimeResponse'
          FillinBlankResponse: '#/components/schemas/FillinBlankResponse'
          MultipleChoiceResponse: '#/components/schemas/MultipleChoiceResponse'
          MultipleResponseResponse: '#/components/schemas/MultipleResponseResponse'
          MultiSelectResponse: '#/components/schemas/MultiSelectResponse'
          OpenEndedResponse: '#/components/schemas/OpenEndedResponse'
          RatingScaleResponse: '#/components/schemas/RatingScaleResponse'
          SelectTextResponse: '#/components/schemas/SelectTextResponse'
          TrueFalseResponse: '#/components/schemas/TrueFalseResponse'
    AggregateMeasure:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: AggregateMeasure
          description: The type of this entity. Must be set to 'AggregateMeasure'
          example: AggregateMeasure
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: &ref_4
            customField: customValue
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        metricValue:
          type: number
          description: >-
            A decimal value representing the total curricular progress the actor
            has made in the context of the application.
          example: 42
        maxMetricValue:
          type: number
          description: >-
            A decimal value representing the maximum possible value for the
            metric in this context.
          example: 100
        metric:
          type: string
          description: The type of metric being measured
          example: MinutesOnTask
        startedAtTime:
          type: string
          format: date-time
          description: The date and time when the metric aggregation started
          example: '2023-08-15T14:12:00.000Z'
        endedAtTime:
          type: string
          format: date-time
          description: The date and time when the metric aggregation was completed
          example: '2023-08-15T14:12:00.000Z'
      required:
        - '@context'
        - id
        - type
        - metricValue
        - metric
      additionalProperties: false
    AggregateMeasureCollection:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: AggregateMeasureCollection
          description: The type of this entity. Must be set to 'AggregateMeasureCollection'
          example: AggregateMeasureCollection
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        items:
          type: array
          items:
            type:
              - string
              - object
          description: The collection of aggregate measures
          example:
            - https://example.edu/measures/001
            - https://example.edu/measures/002
            - type: AggregateMeasure
              id: https://example.edu/measures/003
              metric: MinutesOnTask
              metricValue: 42
              maxMetricValue: 100
              startedAtTime: '2023-08-15T14:12:00.000Z'
              endedAtTime: '2023-08-15T14:12:00.000Z'
      required:
        - '@context'
        - id
        - type
        - items
      additionalProperties: false
      description: A collection of AggregateMeasure entities
    Assessment:
      type: object
      properties:
        type:
          type: string
          const: Assessment
          description: The type of the digital resource
          example: Assessment
        items:
          type: array
          items:
            type:
              - string
              - object
          description: >-
            The items of the assessment. See
            [@AssessmentItem](#model/assessmentitem)
          example:
            - type: AssessmentItem
              id: '123'
              name: Assessment Item 1
      required:
        - type
      description: |-
        # Assessment

        Represents an assessment such as a quiz or test
    AssessmentItem:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: AssessmentItem
          description: The type of the digital resource
          example: AssessmentItem
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: &ref_5
              - string
              - object
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: &ref_6
            - https://example.edu/users/223344
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: &ref_7
            - lecture
            - introduction
        learningObjectives:
          type: array
          items:
            type: &ref_8
              - string
              - object
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: &ref_9
            - https://example.edu/objectives/1234
        isPartOf:
          type: &ref_10
            - string
            - object
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        dateToActivate:
          type: string
          format: date-time
          description: The datetime when this was activated
          example: '2023-08-15T14:00:00.000Z'
        dateToShow:
          type: string
          format: date-time
          description: ' describes when the resource should be shown or made available to learners'
          example: '2023-08-15T14:00:00.000Z'
        dateToStartOn:
          type: string
          format: date-time
          description: The datetime when this resource becomes available to learners
          example: '2023-08-15T14:00:00.000Z'
        dateToSubmit:
          type: string
          format: date-time
          description: The datetime when this resource is due
          example: '2023-08-22T23:59:59.000Z'
        maxAttempts:
          type: number
          description: >-
            A non-negative integer that designates the number of permitted
            attempts.
          example: 3
        maxSubmits:
          type: number
          description: >-
            A non-negative integer that designates the number of permitted
            submissions.
          example: 3
        maxScore:
          type: number
          description: The maximum possible score for this assignable resource
          example: 100
        isTimeDependent:
          type: boolean
          description: "\tA boolean value indicating whether or not interacting with the item is time dependent."
          example: false
      required:
        - '@context'
        - id
        - type
      additionalProperties: false
      description: |-
        # AssessmentItem

        Represents an assessment item such as a question or assignment
    AllAssignableDigitalResources:
      oneOf:
        - $ref: '#/components/schemas/AssignableDigitalResource'
        - $ref: '#/components/schemas/Assessment'
        - $ref: '#/components/schemas/AssessmentItem'
      discriminator:
        propertyName: type
        mapping:
          AssignableDigitalResource: '#/components/schemas/AssignableDigitalResource'
          Assessment: '#/components/schemas/Assessment'
          AssessmentItem: '#/components/schemas/AssessmentItem'
    Attempt:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Attempt
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        assignee:
          type:
            - string
            - object
          description: The person that is assigned to the response
          example: https://example.edu/users/554433
        assignable:
          type:
            - string
            - object
          description: 'The DigitalResource that constitutes the object of the assignment. '
          example: https://example.edu/terms/201801/courses/7/sections/1/assignments/1
        count:
          type: number
          description: >-
            The total number of attempts inclusive of the current attempt that
            have been registered against the assigned DigitalResource.
          example: 1
        startedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was started
          example: '2021-01-01T00:00:00Z'
        endedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was ended
          example: '2021-01-01T00:00:00Z'
        duration:
          type: string
          format: duration
          description: The duration of the attempt in seconds
          example: PT50M30S
      required:
        - '@context'
        - id
        - type
      description: >-
        # Attempt


        A Caliper Attempt provides a count of the number of times an actor has
        interacted with a DigitalResource along with start time, 

        end time and duration information. An Attempt is generated as the result
        of an action such as starting an Assessment or Questionnaire.
    AudioObject:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: AudioObject
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        duration:
          type: string
          format: duration
          description: >-
            An optional time interval that represents the total time required to
            view and/or listen to the MediaObject at normal speed. If a duration
            is specified the value MUST conform to the ISO 8601 duration format.
          example: PT1H17M50S
        volumeLevel:
          type: string
          description: A string value indicating the current volume level.
          example: 50%
        volumeMin:
          type: string
          description: A string value indicating the minimum volume level permitted.
          example: 50%
        volumeMax:
          type: string
          description: A string value indicating the maximum volume level permitted.
          example: 50%
        muted:
          type: boolean
          description: A boolean value indicating whether the audio is muted.
          example: true
      required:
        - '@context'
        - id
        - type
      description: |-
        # AudioObject

        Represents an audio object
    BookmarkAnnotation:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: BookmarkAnnotation
          description: The type of this entity. Must be set to 'BookmarkAnnotation'
          example: BookmarkAnnotation
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        annotator:
          type: &ref_14
            - string
            - object
          description: The person that made the annotation
          example: https://example.edu/users/554433
        annotated:
          type: &ref_15
            - string
            - object
        bookmarkNotes:
          type: string
          description: Notes about the bookmark
          example: Remember to review this section
      required:
        - '@context'
        - id
        - type
        - annotator
        - annotated
      description: >-
        # BookmarkAnnotation


        A bookmark annotation represents the act of marking a DigitalResource at
        a particular location.
    Chapter:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Chapter
          description: The type of this entity. Must be set to 'Chapter'
          example: Chapter
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
      required:
        - '@context'
        - id
        - type
      description: |-
        # Chapter

        Represents a major sub-division of a larger work such as a book
    Collection:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Collection
          description: The type of this entity. Must be set to 'Collection'
          example: Collection
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        items:
          type: array
          items:
            type:
              - string
              - object
            description: An ordered collection of items that comprise the collection
            example:
              - https://example.edu/items/1
              - https://example.edu/items/2
              - https://example.edu/items/3
          description: An ordered collection of items that comprise the collection
          example:
            - https://example.edu/items/1
            - https://example.edu/items/2
            - https://example.edu/items/3
      required:
        - '@context'
        - id
        - type
        - items
      additionalProperties: false
      description: Represents an ordered collection of items
    Comment:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Comment
          description: The type of this entity. Must be set to 'Comment'
          example: Comment
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        commenter:
          type:
            - string
            - object
          description: The person who provided the comment
          example: https://example.edu/users/554433
        commentedOn:
          type:
            - string
            - object
          description: The Entity which received the comment
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf
        value:
          type: string
          description: A string value representing the comment's textual value.
          example: This is a comment
      required:
        - '@context'
        - id
        - type
      description: |-
        # Comment

        Represents a comment on an entity
    CourseOffering:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this organization. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/organization/554433
        type:
          type: string
          const: CourseOffering
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        subOrganizationOf:
          type:
            - string
            - object
          description: The parent Organization of this Organization
          example: https://example.edu/organizations/schools/law
        members:
          type: array
          items:
            type: &ref_11
              - string
              - object
          description: The members of this Organization
          example: &ref_12
            - https://example.edu/users/554433
        courseNumber:
          type: string
          description: >-
            A string value that constitutes a human-readable identifier for the
            CourseOffering.
          example: CPS 435-01
        academicSession:
          type: string
          description: The academic session of the offering
          example: Fall 2016
      required:
        - '@context'
        - id
        - type
      additionalProperties: false
      description: |-
        # CourseOffering

        A CourseOffering is a specific instance of a Course
      example:
        '@context': http://purl.imsglobal.org/ctx/caliper/v1p2
        id: https://example.edu/terms/201601/courses/7
        type: CourseOffering
        courseNumber: CPS 435
        academicSession: Fall 2016
        name: CPS 435 Learning Analytics
        otherIdentifiers:
          - type: SystemIdentifier
            identifier: example.edu:SI182-F16
            identifierType: LisSourcedId
        dateCreated: '2016-08-01T06:00:00.000Z'
        dateModified: '2016-09-02T11:30:00.000Z'
    CourseSection:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this organization. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/organization/554433
        type:
          type: string
          const: CourseSection
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        subOrganizationOf:
          type:
            - string
            - object
          description: The parent Organization of this Organization
          example: https://example.edu/organizations/schools/law
        members:
          type: array
          items:
            type: *ref_11
          description: The members of this Organization
          example: *ref_12
        courseNumber:
          type: string
          description: >-
            A string value that constitutes a human-readable identifier for the
            CourseOffering.
          example: CPS 435-01
        academicSession:
          type: string
          description: The academic session of the offering
          example: Fall 2016
        category:
          type: string
          description: >-
            A string value that characterizes the purpose of the section such as
            lecture, lab or seminar.
          example: seminar
      required:
        - '@context'
        - id
        - type
      additionalProperties: false
      description: |-
        # CourseSection

        A CourseSection is a specific instance of a CourseOffering
      example:
        '@context': http://purl.imsglobal.org/ctx/caliper/v1p2
        id: https://example.edu/terms/201601/courses/7/sections/1
        type: CourseSection
        academicSession: Fall 2016
        courseNumber: CPS 435-01
        name: CPS 435 Learning Analytics, Section 01
        otherIdentifiers:
          - type: SystemIdentifier
            identifier: example.edu:SI182-001-F16
            identifierType: LisSourcedId
        category: seminar
        subOrganizationOf:
          id: https://example.edu/terms/201601/courses/7
          type: CourseOffering
          courseNumber: CPS 435
        dateCreated: '2016-08-01T06:00:00.000Z'
    DateTimeResponse:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: DateTimeResponse
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        attempt:
          type: &ref_13
            - string
            - object
          description: The attempt that the response belongs to
          example: https://example.edu/attempts/1234
        startedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was started
          example: '2021-01-01T00:00:00Z'
        endedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was ended
          example: '2021-01-01T00:00:00Z'
        duration:
          type: string
          format: duration
          description: The duration of the attempt in seconds
          example: PT50M30S
        dateTimeSelected:
          type: string
          format: date-time
          description: The DateTime selected in response to the question.
          example: '2021-01-01T00:00:00Z'
      required:
        - '@context'
        - id
        - type
      description: A response to a datetime question
    DigitalResourceCollection:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: DigitalResourceCollection
          description: The type of this entity. Must be set to 'DigitalResourceCollection'
          example: DigitalResourceCollection
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        items:
          type: array
          items:
            type:
              - string
              - object
          description: An ordered collection of DigitalResource entities
          example:
            - https://example.edu/resources/1
            - https://example.edu/resources/2
      required:
        - '@context'
        - id
        - type
      description: |-
        # DigitalResourceCollection

        Represents a collection of digital resources
    Document:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Document
          description: The type of this entity. Must be set to 'Document'
          example: Document
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
      required:
        - '@context'
        - id
        - type
      description: |-
        # Document

        Represents a written work in digital form
    FillinBlankResponse:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: FillinBlankResponse
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        attempt:
          type: *ref_13
          description: The attempt that the response belongs to
          example: https://example.edu/attempts/1234
        startedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was started
          example: '2021-01-01T00:00:00Z'
        endedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was ended
          example: '2021-01-01T00:00:00Z'
        duration:
          type: string
          format: duration
          description: The duration of the attempt in seconds
          example: PT50M30S
        values:
          type: array
          items:
            type: string
          description: >-
            An ordered collection of one or more string values representing
            words, expressions or short phrases that constitute the "fill in the
            blank" response.
          example:
            - The answer is 42
      required:
        - '@context'
        - id
        - type
      description: A response to a fill in the blank question
    Forum:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Forum
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        items:
          type: array
          items:
            type:
              - string
              - object
          description: An ordered collection of Thread entities.
          example:
            - id: >-
                https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/1
              type: Thread
              name: Caliper Information Model
              dateCreated: '2016-11-01T09:30:00.000Z'
            - id: >-
                https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/2
              type: Thread
              name: Caliper Sensor API
              dateCreated: '2016-11-01T09:30:00.000Z'
            - id: >-
                https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/3
              type: Thread
              name: Caliper Certification
              dateCreated: '2016-11-01T09:30:00.000Z'
      required:
        - '@context'
        - id
        - type
      description: >-
        # Forum


        A Caliper Forum represents a channel or virtual space in which group
        discussions take place. 

        A Forum typically comprises one or more threaded conversations to which
        members can subscribe, post messages and reply to other messages.
    Frame:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Frame
          description: The type of this entity. Must be set to 'Frame'
          example: Frame
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        index:
          type: number
          description: The position of this frame within its parent digital resource
          example: 1
      required:
        - '@context'
        - id
        - type
      description: >-
        # Frame


        A Caliper Frame represents a part, portion or segment of a
        DigitalResource, such as a book chapter or video segment
    Group:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this organization. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/organization/554433
        type:
          type: string
          const: Group
          description: The type of this agent. Must be set to 'Organization'
          example: Group
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        subOrganizationOf:
          type:
            - string
            - object
          description: The parent Organization of this Organization
          example: https://example.edu/organizations/schools/law
        members:
          type: array
          items:
            type: *ref_11
          description: The members of this Organization
          example: *ref_12
      required:
        - '@context'
        - id
        - type
      additionalProperties: false
      description: |-
        # Group

        Represents a group such as a company, school, or other organization
    HighlightAnnotation:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: HighlightAnnotation
          description: The type of this entity. Must be set to 'HighlightAnnotation'
          example: HighlightAnnotation
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        annotator:
          type: *ref_14
          description: The person that made the annotation
          example: https://example.edu/users/554433
        annotated:
          type: *ref_15
        selection:
          $ref: '#/components/schemas/TextPositionSelector'
          description: The text selection that was highlighted with start and end positions
        selectionText:
          type: string
          description: The text that was highlighted
          example: The quick brown fox jumps over the lazy dog
      required:
        - '@context'
        - id
        - type
        - annotator
        - annotated
      description: >-
        # HighlightAnnotation


        represents the act of marking a particular segment of a DigitalResource
        between two known coordinates.
    ImageObject:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: ImageObject
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        duration:
          type: string
          format: duration
          description: >-
            An optional time interval that represents the total time required to
            view and/or listen to the MediaObject at normal speed. If a duration
            is specified the value MUST conform to the ISO 8601 duration format.
          example: PT1H17M50S
      required:
        - '@context'
        - id
        - type
      description: |-
        # ImageObject

        Represents an image object
    LearningObjective:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: LearningObjective
          description: The type of this entity. Must be set to 'LearningObjective'
          example: LearningObjective
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
      required:
        - '@context'
        - id
        - type
      description: |-
        # LearningObjective

        Represents a statement of what a learner should know or be able to do
    LikertScale:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: LikertScale
          description: The type of scale, must be LikertScale
          example: LikertScale
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        scalePoints:
          type: number
          description: >-
            A integer value used to determine the amount of points on the
            LikertScale.
          example: 5
        itemLabels:
          type: array
          items:
            type: string
          description: >-
            The ordered list of labels for each point on the scale. The values
            MUST be cast as strings.
          example:
            - Strongly disagree
            - Disagree
            - Neutral
            - Agree
            - Strongly agree
        itemValues:
          type: array
          items:
            type: string
          description: >-
            The ordered list of values for each point on the scale. The values
            MUST be cast as strings.
          example:
            - '1'
            - '2'
            - '3'
            - '4'
            - '5'
      required:
        - '@context'
        - id
        - type
      description: >-
        # LikertScale


        A Caliper LikertScale models a Likert scale employed in order to capture
        some likert rating.
      example: &ref_35
        '@context': http://purl.imsglobal.org/ctx/caliper/v1p2
        id: https://example.edu/scale/1
        type: Scale
        dateCreated: '2018-08-01T06:00:00.000Z'
    Link:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Link
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
      required:
        - '@context'
        - id
        - type
      description: >-
        # Link


        The Link entity represents a URL that might be a UI workflow or service
        endpoint (transient or otherwise), 

        and not necessarily a proper DigitalResource (such as a WebPage or
        LtiLink).
    LtiSession:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: LtiSession
          description: The type of this entity. Must be set to 'LtiSession'
          example: LtiSession
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        user:
          type: &ref_16
            - string
            - object
          description: The user who initiated the session
          example: https://example.edu/users/554433
        startedAtTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when the session started
          example: '2023-08-15T14:12:00.000Z'
        endedAtTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when the session ended
          example: '2023-08-15T15:12:00.000Z'
        duration:
          type: integer
          description: Duration of the session in seconds
          example: 3600
        client:
          type: &ref_17
            - string
            - object
          description: The client application used to initiate the session
          example: https://example.edu/software/1234
        messageParameters:
          type: object
          additionalProperties: {}
          description: The message parameters associated with the LTI session
          example:
            iss: https://example.edu/oauth/iss
            sub: https://example.edu/users/554433
            aud:
              - https://example.com/lti/tool
            exp: 1510185728
            iat: 1510185228
            azp: 962fa4d8-bcbf-49a0-94b2-2de05ad274af
            nonce: fc5fdc6d-5dd6-47f4-b2c9-5d1216e9b771
            name: Ms Jane Marie Doe
            given_name: Jane
            family_name: Doe
            middle_name: Marie
            picture: https://example.edu/jane.jpg
            email: jane@example.edu
      required:
        - '@context'
        - id
        - type
      description: Represents a learning tools interoperability (LTI) session
    MediaLocation:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: MediaLocation
          description: The type of this entity. Must be set to 'MediaLocation'
          example: MediaLocation
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        currentTime:
          type: string
          format: duration
          description: >-
            A time interval or duration that represents the current playback
            position measured from the beginning of an AudioObject or
            VideoObject. 

            If a currentTime is specified the value MUST conform to the ISO 8601
            duration format.
          example: PT30M54S
      required:
        - '@context'
        - id
        - type
      description: |-
        # MediaLocation

        Represents a location or temporal position within a media object
    AllMediaObjects:
      oneOf:
        - $ref: '#/components/schemas/MediaObject'
        - $ref: '#/components/schemas/AudioObject'
        - $ref: '#/components/schemas/ImageObject'
        - $ref: '#/components/schemas/VideoObject'
      discriminator:
        propertyName: type
        mapping:
          MediaObject: '#/components/schemas/MediaObject'
          AudioObject: '#/components/schemas/AudioObject'
          ImageObject: '#/components/schemas/ImageObject'
          VideoObject: '#/components/schemas/VideoObject'
    Membership:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Membership
          description: The type of this entity. Must be set to 'Membership'
          example: Membership
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        member:
          type:
            - string
            - object
          description: The person who is a member of the organization
          example: https://example.edu/users/554433
        organization:
          type:
            - string
            - object
          description: The organization that the person is a member of
          example: https://example.edu/organizations/1234
        roles:
          type: array
          items:
            type: string
          description: >-
            The roles assigned to the member. Must be one or more valid LIS role
            values
          example:
            - Learner
            - Instructor
        status:
          type: string
          enum:
            - Active
            - Inactive
          description: The current status of the membership
          example: Active
      required:
        - '@context'
        - id
        - type
        - member
        - organization
      additionalProperties: false
      description: >-
        # Membership


        Represents a person's membership in an organization including role and
        status information
    Message:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Message
          description: The type of this entity. Must be set to 'Message'
          example: Message
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        body:
          type: string
          description: >-
            A string value comprising a plain-text rendering of the body content
            of the Message.
          example: This is the content of the message
        attachments:
          type: array
          items:
            type:
              - string
              - object
          description: >-
            An array of DigitalResource entities that are attachments to the
            message
          example:
            - https://example.edu/resources/1
            - https://example.edu/resources/2
        replyTo:
          type:
            - string
            - object
      required:
        - '@context'
        - id
        - type
      additionalProperties: false
      description: |-
        # Message

        Represents a message in a forum, thread, or other communication context
    MultipleChoiceResponse:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: MultipleChoiceResponse
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        attempt:
          type: *ref_13
          description: The attempt that the response belongs to
          example: https://example.edu/attempts/1234
        startedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was started
          example: '2021-01-01T00:00:00Z'
        endedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was ended
          example: '2021-01-01T00:00:00Z'
        duration:
          type: string
          format: duration
          description: The duration of the attempt in seconds
          example: PT50M30S
        value:
          type: string
          description: A string value that represents the selected option.
          example: The answer is 42
      required:
        - '@context'
        - id
        - type
      description: A response to a multiple choice question
    MultipleResponseResponse:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: MultipleResponseResponse
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        attempt:
          type: *ref_13
          description: The attempt that the response belongs to
          example: https://example.edu/attempts/1234
        startedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was started
          example: '2021-01-01T00:00:00Z'
        endedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was ended
          example: '2021-01-01T00:00:00Z'
        duration:
          type: string
          format: duration
          description: The duration of the attempt in seconds
          example: PT50M30S
        values:
          type: array
          items:
            type: string
          description: The values selected in response to the question.
          example:
            - The answer is 42
      required:
        - '@context'
        - id
        - type
      description: A response to a multiple response question
    MultiSelectResponse:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: MultiSelectResponse
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        attempt:
          type: *ref_13
          description: The attempt that the response belongs to
          example: https://example.edu/attempts/1234
        startedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was started
          example: '2021-01-01T00:00:00Z'
        endedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was ended
          example: '2021-01-01T00:00:00Z'
        duration:
          type: string
          format: duration
          description: The duration of the attempt in seconds
          example: PT50M30S
        selections:
          type: array
          items:
            type: string
          description: An array of the values representing the rater's selected responses.
          example:
            - The answer is 42
      required:
        - '@context'
        - id
        - type
      description: A response to a multi select question
    MultiselectScale:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: MultiselectScale
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        scalePoints:
          type: integer
          exclusiveMinimum: 0
          description: The number of points on the scale
          example: 5
        itemLabels:
          type: array
          items:
            type: string
          description: The ordered list of labels for each point on the scale
          example:
            - Strongly disagree
            - Disagree
            - Neutral
            - Agree
            - Strongly agree
        itemValues:
          type: array
          items:
            type: string
          description: The ordered list of values for each point on the scale
          example:
            - '1'
            - '2'
            - '3'
            - '4'
            - '5'
        isOrderedSelection:
          type: boolean
          description: Indicates whether the order of the selected items is important.
          example: true
        minSelections:
          type: integer
          exclusiveMinimum: 0
          description: The minimum number of selections required.
          example: 1
        maxSelections:
          type: integer
          exclusiveMinimum: 0
          description: The maximum number of selections allowed.
          example: 1
      required:
        - '@context'
        - id
        - type
      description: |-
        # MultiselectScale

        A scale that allows multiple selections from a list.
      example:
        '@context': http://purl.imsglobal.org/ctx/caliper/v1p2
        id: https://example.edu/scale/3
        type: MultiselectScale
        scalePoints: 5
        itemLabels:
          - 😁
          - 😃
          - 😐
          - 😕
          - 😟
        itemValues:
          - superhappy
          - happy
          - indifferent
          - unhappy
          - disappointed
        isOrderedSelection: false
        minSelections: 1
        maxSelections: 5
        dateCreated: '2018-08-01T06:00:00.000Z'
    NumericScale:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: NumericScale
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        minValue:
          type: number
          description: The minimum value of the scale
          example: 0
        minLabel:
          type: string
          description: The label for the minimum value of the scale
          example: Minimum
        maxValue:
          type: number
          description: The maximum value of the scale
          example: 100
        maxLabel:
          type: string
          description: The label for the maximum value of the scale
          example: Maximum
        step:
          type: number
          description: >-
            Indicates the decimal step used for determining the options between
            the minimum and maximum values.
          example: 1
      required:
        - '@context'
        - id
        - type
      description: |-
        # NumericScale

        A scale that allows numeric input
      example:
        '@context': http://purl.imsglobal.org/ctx/caliper/v1p2
        id: https://example.edu/scale/4
        type: NumericScale
        minValue: 0
        minLabel: Disliked
        maxValue: 10
        maxLabel: Liked
        step: 0.5
        dateCreated: '2018-08-01T06:00:00.000Z'
    OpenEndedResponse:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: OpenEndedResponse
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        attempt:
          type: *ref_13
          description: The attempt that the response belongs to
          example: https://example.edu/attempts/1234
        startedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was started
          example: '2021-01-01T00:00:00Z'
        endedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was ended
          example: '2021-01-01T00:00:00Z'
        duration:
          type: string
          format: duration
          description: The duration of the attempt in seconds
          example: PT50M30S
        value:
          type: string
          description: the textual value of the response.
          example: The answer is 42
      required:
        - '@context'
        - id
        - type
      description: A response to an open ended question
    Organization:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this organization. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/organization/554433
        type:
          type: string
          const: Organization
          description: The type of this agent. Must be set to 'Organization'
          example: Organization
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        subOrganizationOf:
          type:
            - string
            - object
          description: The parent Organization of this Organization
          example: https://example.edu/organizations/schools/law
        members:
          type: array
          items:
            type: *ref_11
          description: The members of this Organization
          example: *ref_12
      required:
        - '@context'
        - id
        - type
      additionalProperties: false
      description: >-
        # Organization


        Represents a formal or informal organization that hosts, manages or
        provides learning experiences
    Page:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Page
          description: The type of this entity. Must be set to 'Page'
          example: Page
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
      required:
        - '@context'
        - id
        - type
      description: |-
        # Page

        Represents a page in a document or website
    Person:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this agent. Must be a valid IRI and should
            be dereferenceable
          example: https://example.edu/agent/554433
        type:
          type: string
          const: Person
          description: The type of this agent. Must be set to 'Person'
          example: Person
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          properties:
            email:
              type: string
              format: email
          required:
            - email
          additionalProperties: true
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
      required:
        - '@context'
        - id
        - type
        - extensions
      additionalProperties: false
      description: >-
        # Person


        Represents a person who can interact with or be the subject of learning
        activities
    Question:
      oneOf:
        - $ref: '#/components/schemas/DatetimeQuestion'
        - $ref: '#/components/schemas/OpenEndedQuestion'
        - $ref: '#/components/schemas/MultiSelectQuestion'
      discriminator:
        propertyName: type
        mapping:
          DatetimeQuestion: '#/components/schemas/DatetimeQuestion'
          OpenEndedQuestion: '#/components/schemas/OpenEndedQuestion'
          MultiselectQuestion: '#/components/schemas/MultiSelectQuestion'
    Questionnaire:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Questionnaire
          description: The type of this entity. Must be set to 'Questionnaire'
          example: Questionnaire
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        items:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uri
              type:
                type: string
                const: QuestionnaireItem
            required:
              - id
              - type
            additionalProperties: true
          description: The items of the questionnaire
          example:
            - id: https://example.edu/surveys/100/questionnaires/30/items/1
              type: QuestionnaireItem
      required:
        - '@context'
        - id
        - type
      description: |-
        # Questionnaire

        A Caliper Questionnaire is a collection of QuestionnaireItems.
    QuestionnaireItem:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: QuestionnaireItem
          description: The type of this entity. Must be set to 'QuestionnaireItem'
          example: QuestionnaireItem
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        question:
          type:
            - string
            - object
          description: The Question entity posed by the QuestionnaireItem.
          example: https://example.edu/questions/1
        weight:
          type: number
          description: The weight of the question
          example: 1
        categories:
          type: array
          items:
            type: string
          description: The categories of the question
          example:
            - Math
            - Science
      required:
        - '@context'
        - id
        - type
      description: |-
        # QuestionnaireItem

        Represents an item in a questionnaire or survey
    Rating:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Rating
          description: The type of this entity. Must be set to 'Rating'
          example: Rating
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        rater:
          type:
            - string
            - object
          description: The person who provided the rating
          example: https://example.edu/users/554433
        rated:
          type:
            - string
            - object
          description: The entity that was rated
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf
        question:
          type:
            - string
            - object
          description: The question that was rated
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf
        selections:
          type: array
          items:
            type: string
          description: The selections that were made
          example:
            - Option 1
            - Option 2
        ratingComment:
          type:
            - string
            - object
          description: The Comment left with the Rating
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf
      required:
        - '@context'
        - id
        - type
      description: |-
        # Rating

        Represents a rating on an entity
    RatingScaleResponse:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: RatingScaleResponse
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        attempt:
          type: *ref_13
          description: The attempt that the response belongs to
          example: https://example.edu/attempts/1234
        startedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was started
          example: '2021-01-01T00:00:00Z'
        endedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was ended
          example: '2021-01-01T00:00:00Z'
        duration:
          type: string
          format: duration
          description: The duration of the attempt in seconds
          example: PT50M30S
        selections:
          type: array
          items:
            type: string
          description: "An array of the values representing the rater's selected responses.\t"
          example:
            - Satisfied
      required:
        - '@context'
        - id
        - type
      description: A response to a rating scale question
    Result:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Result
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        attempt:
          type:
            - string
            - object
          description: The associated Attempt that was scored.
          example:
            id: >-
              https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1
            type: Attempt
        maxResultScore:
          type: number
          description: A number that designates the maximum score permitted.
          example: 10
        resultScore:
          type: number
          description: A number that designates the actual score awarded.
          example: 10
        scoredBy:
          type:
            - string
            - object
          description: The Agent who scored or graded the Attempt.
          example:
            id: https://example.edu/autograder
            type: SoftwareApplication
        comment:
          type: string
          description: A string value comprising a plain-text rendering of the comment.
          example: This is the comment
      required:
        - '@context'
        - id
        - type
    Score:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Score
          description: The type of entity, must be Score
          example: Score
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        attempt:
          type:
            - string
            - object
          description: The associated Attempt that was scored.
          example:
            id: >-
              https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1
            type: Attempt
        maxScore:
          type: number
          description: A number that designates the maximum score permitted.
          example: 10
        scoreGiven:
          type: number
          description: A number that designates the actual score awarded.
          example: 10
        scoredBy:
          type:
            - string
            - object
          description: The Agent who scored or graded the Attempt.
          example:
            id: https://example.edu/autograder
            type: SoftwareApplication
        comment:
          type: string
          description: A comment about the score
          example: Great job!
      required:
        - '@context'
        - id
        - type
        - attempt
        - scoredBy
      description: >-
        # Score


        A Caliper Score represents a "raw" or unadjusted numeric score or grade
        awarded for a given assignment submission. 

        A grade book SHOULD treat the scoreGiven value as read-only and preserve
        it.
      example:
        '@context': http://purl.imsglobal.org/ctx/caliper/v1p2
        id: >-
          https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1/scores/1
        type: Score
        attempt:
          id: >-
            https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1
          type: Attempt
          assignee: https://example.edu/users/554433
          assignable: https://example.edu/terms/201601/courses/7/sections/1/assess/1
          count: 1
          dateCreated: '2016-11-15T10:05:00.000Z'
          startedAtTime: '2016-11-15T10:05:00.000Z'
          endedAtTime: '2016-11-15T10:55:30.000Z'
          duration: PT50M30S
        maxScore: 15
        scoreGiven: 10
        scoredBy:
          id: https://example.edu/autograder
          type: SoftwareApplication
          dateCreated: '2016-11-15T10:55:58.000Z'
        comment: auto-graded exam
        dateCreated: '2016-11-15T10:56:00.000Z'
    SearchResponse:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: SearchResponse
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        searchProvider:
          type:
            - string
            - object
        searchTarget:
          type:
            - string
            - object
        query:
          type:
            - string
            - object
          description: The query that was used to search for the target
          example: What is the capital of France?
        searchResultsItemCount:
          type: integer
          description: The number of search results
          example: 10
      required:
        - '@context'
        - id
        - type
        - searchProvider
        - searchTarget
      description: >-
        A Caliper SearchResponse is a generic type that represents the search
        results for a given query.
    SelectTextResponse:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: SelectTextResponse
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        attempt:
          type: *ref_13
          description: The attempt that the response belongs to
          example: https://example.edu/attempts/1234
        startedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was started
          example: '2021-01-01T00:00:00Z'
        endedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was ended
          example: '2021-01-01T00:00:00Z'
        duration:
          type: string
          format: duration
          description: The duration of the attempt in seconds
          example: PT50M30S
        values:
          type: array
          items:
            type: string
          description: An ordered collection of one or more selected options.
          example:
            - Information Model
            - Sensor API
            - Profiles
      required:
        - '@context'
        - id
        - type
      description: A response to a select text question
    Session:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Session
          description: The type of this entity. Must be set to 'Session'
          example: Session
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        user:
          type: *ref_16
          description: The user who initiated the session
          example: https://example.edu/users/554433
        startedAtTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when the session started
          example: '2023-08-15T14:12:00.000Z'
        endedAtTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when the session ended
          example: '2023-08-15T15:12:00.000Z'
        duration:
          type: integer
          description: Duration of the session in seconds
          example: 3600
        client:
          type: *ref_17
          description: The client application used to initiate the session
          example: https://example.edu/software/1234
      required:
        - '@context'
        - id
        - type
      description: >-
        Represents a user session established by a Person using a client
        application
    SharedAnnotation:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: SharedAnnotation
          description: The type of this entity. Must be set to 'SharedAnnotation'
          example: SharedAnnotation
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        annotator:
          type: *ref_14
          description: The person that made the annotation
          example: https://example.edu/users/554433
        annotated:
          type: *ref_15
        withAgents:
          type: array
          items:
            type:
              - string
              - object
          description: The agents this resource was shared with
          example:
            - https://example.edu/users/554433
      required:
        - '@context'
        - id
        - type
        - annotator
        - annotated
      description: >-
        # SharedAnnotation


        A SharedAnnotation represents the act of sharing a reference to a
        DigitalResource with other agents.
    SoftwareApplication:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
        type:
          type: string
          const: SoftwareApplication
          description: The type of this agent. Must be set to 'SoftwareApplication'
          example: SoftwareApplication
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        version:
          type: string
          description: The version of the application
          example: v1.0.0
        host:
          type: string
          description: The host of the application
          example: example.edu
        ipAddress:
          type: string
          description: The IP address of the application
          example: 192.168.1.1
        userAgent:
          type: string
          description: The user agent of the application
          example: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
      required:
        - '@context'
        - id
        - type
      additionalProperties: false
      description: |-
        # SoftwareApplication

        Represents a software application that can act as an agent
    Survey:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Survey
          description: The type of this entity. Must be set to 'Survey'
          example: Survey
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        items:
          type: array
          items:
            type:
              - string
              - object
          description: The items of the survey
          example:
            - id: https://example.edu/surveys/100/questionnaires/30
              type: Questionnaire
              items:
                - id: https://example.edu/surveys/100/questionnaires/30/items/1
                  type: QuestionnaireItem
                - id: https://example.edu/surveys/100/questionnaires/30/items/2
                  type: QuestionnaireItem
              dateCreated: '2018-08-01T06:00:00.000Z'
      required:
        - '@context'
        - id
        - type
      description: >-
        # Survey


        A Caliper Survey represents a research method for 

        collecting data from a targeted group of respondents. The Survey
        provides a standardized process for gathering data that utilizes one or
        more Questionnaire entities.
    SurveyInvitation:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: SurveyInvitation
          description: The type of this entity. Must be set to 'SurveyInvitation'
          example: SurveyInvitation
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        rater:
          type:
            - string
            - object
          description: The Person which will rate the Survey.
          example: https://example.edu/users/554433
        survey:
          type:
            - string
            - object
          description: The Survey that the SurveyInvitation is for.
        sentCount:
          type: number
          description: >-
            An integer value used to determine the amount of times the
            invitation was sent to the rater.
          example: 1
        dateSent:
          type: string
          format: date-time
          description: The date and time the invitation was sent to the rater.
          example: '2021-01-01T00:00:00.000Z'
      required:
        - '@context'
        - id
        - type
      description: >-
        # SurveyInvitation


        A Caliper SurveyInvitation represents a survey invitation sent to
        raters.
    SystemIdentifier:
      type: object
      properties:
        type:
          type: string
          const: SystemIdentifier
        identifierType:
          type: string
          enum:
            - AccountUserName
            - EmailAddress
            - LisSourcedId
            - LtiContextId
            - LtiDeploymentId
            - LtiPlatformId
            - LtiToolId
            - LtiUserId
            - OneRosterSourcedId
            - Other
            - SisSourcedId
            - SystemId
        identifier:
          type: string
          description: The identifier for the entity
          example: '1234567890'
        source:
          type:
            - string
            - object
          description: The source of the identifier
          example: https://example.edu/software/1234567890
        extensions:
          type: object
          additionalProperties: {}
          description: >-
            A map of additional attributes not defined by the model MAY be
            specified for a more concise representation of the SystemIdentifier.
          example:
            https://example.edu/extensions/custom:
              customProperty: customValue
      required:
        - type
        - identifierType
        - identifier
      description: A SystemIdentifier is a unique identifier for an entity
      example:
        type: SystemIdentifier
        identifierType: AccountUserName
        identifier: '1234567890'
    TagAnnotation:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: TagAnnotation
          description: The type of this entity. Must be set to 'TagAnnotation'
          example: TagAnnotation
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        annotator:
          type: *ref_14
          description: The person that made the annotation
          example: https://example.edu/users/554433
        annotated:
          type: *ref_15
        tags:
          type: array
          items:
            type: string
          description: The tags applied to the resource
          example:
            - important
            - review
            - exam
      required:
        - '@context'
        - id
        - type
        - annotator
        - annotated
      description: >-
        # TagAnnotation


        A TagAnnotation represents the act of tagging a DigitalResource with
        tags or labels.
    TextPositionSelector:
      type: object
      properties:
        type:
          type: string
          const: TextPositionSelector
        start:
          type: number
        end:
          type: number
      required:
        - type
        - start
        - end
      description: |-
        # TextPositionSelector

        Represents a selection of text from a digital resource
    Thread:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Thread
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        items:
          type: array
          items:
            type:
              - string
              - object
          description: An ordered collection of Message entities.
          example:
            - id: >-
                https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/1/messages/1
              type: Message
            - id: >-
                https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/1/messages/2
              type: Message
              replyTo:
                id: >-
                  https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/1/messages/1
                type: Message
            - id: >-
                https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/1/messages/3
              type: Message
              replyTo:
                id: >-
                  https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/1/messages/2
                type: Message
      required:
        - '@context'
        - id
        - type
      description: >-
        # Thread


        A thread is a digital resource that allows users to discuss and share
        ideas.
    TimebackActivityContext:
      type: object
      properties:
        id:
          type: string
          format: uri
        type:
          type: string
          const: TimebackActivityContext
        subject:
          type: string
          enum:
            - Reading
            - Language
            - Vocabulary
            - Social Studies
            - Writing
            - Science
            - FastMath
            - Math
            - None
            - Other
        app:
          type: object
          properties:
            id:
              type: string
              format: uri
            name:
              type: string
            extensions:
              type: object
              additionalProperties: {}
              description: Additional attributes not defined by the model
              example: *ref_4
          required:
            - name
          description: The application where the event was recorded
          example:
            id: https://your.app.url
            name: Example App
        course:
          type: object
          properties:
            id:
              type: string
              format: uri
            name:
              type: string
            extensions:
              type: object
              additionalProperties: {}
              description: Additional attributes not defined by the model
              example: *ref_4
          required:
            - name
          description: The course where the event was recorded
          example:
            id: >-
              https://api.alpha-1edtech.ai/ims/oneroster/rostering/v1p2/courses/<courseSourcedId>
            name: Example Course
        activity:
          type: object
          properties:
            id:
              type: string
              format: uri
            name:
              type: string
            extensions:
              type: object
              additionalProperties: {}
              description: Additional attributes not defined by the model
              example: *ref_4
          required:
            - name
          description: The activity where the event was recorded
          example:
            id: >-
              https://api.alpha-1edtech.ai/ims/oneroster/rostering/v1p2/courses/components/<componentSourcedId>
            name: Example Activity
        process:
          type: boolean
      required:
        - id
        - type
        - subject
        - app
      description: >-
        # TimebackActivityContext


        Represents the context of the activity where the event was recorded.


        This context represents a unified interface for third parties users of
        the timeback platform apis to send student metrics.


        These metrics can be processed in an ETL layer to create a unified view
        of student metrics in different applications.
    TimebackActivityMetricsCollection:
      type: object
      properties:
        id:
          type: string
          format: uri
          description: The unique identifier for the collection
          example: >-
            https://api.alpha-1edtech.ai/ims/oneroster/rostering/v1p2/collections/1
        type:
          type: string
          const: TimebackActivityMetricsCollection
          description: The type of the collection
          example: TimebackActivityMetricsCollection
        items:
          type: array
          items:
            $ref: '#/components/schemas/TimebackActivityMetric'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
      required:
        - id
        - type
        - items
      description: >
        # TimebackActivityMetricsCollection


        Represents a collection of activity metrics.


        The collection is used to store the metrics for a student's activity.


        Supported metrics: xpEarned, totalQuestions, correctQuestions,
        masteredUnits


        You can send an event with multiple metrics at once.
    TimebackTimeSpentMetricsCollection:
      type: object
      properties:
        id:
          type: string
          format: uri
          description: The unique identifier for the collection
          example: https://your-api-endpoint/collections/1
        type:
          type: string
          const: TimebackTimeSpentMetricsCollection
        items:
          type: array
          items:
            $ref: '#/components/schemas/TimeSpentMetric'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
      required:
        - id
        - type
        - items
      description: |
        # TimebackTimeSpentMetricsCollection

        Represents a collection of time spent metrics.

        Supported types: active, inactive, waste, unknown, anti-pattern
    TimebackUser:
      type: object
      properties:
        id:
          type: string
          format: uri
          description: The unique identifier for the actor
          example: >-
            https://api.alpha-1edtech.ai/ims/oneroster/rostering/v1p2/users/<userId>
        type:
          type: string
          const: TimebackUser
          description: The type of this user. Must be set to 'TimebackUser'
          example: TimebackUser
        email:
          type: string
          format: email
        name:
          type: string
        role:
          type: string
          enum:
            - student
            - teacher
            - admin
            - guide
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
      required:
        - id
        - type
        - email
      additionalProperties: false
      description: >-
        # TimebackUser


        Represents a user in the context of the Timeback application.


        If possible, always send the user id as the oneroster url to get the
        user information.


        If the oneroster url is not available, send the user id as a url with
        your application base url.


        Example:
        https://api.alpha-1edtech.ai/ims/oneroster/rostering/v1p2/users/123
    TrueFalseResponse:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: TrueFalseResponse
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        attempt:
          type: *ref_13
          description: The attempt that the response belongs to
          example: https://example.edu/attempts/1234
        startedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was started
          example: '2021-01-01T00:00:00Z'
        endedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was ended
          example: '2021-01-01T00:00:00Z'
        duration:
          type: string
          format: duration
          description: The duration of the attempt in seconds
          example: PT50M30S
        value:
          type: string
          enum:
            - 'true'
            - 'false'
            - 'yes'
            - 'no'
          description: The boolean value of the response.
          example: 'true'
      required:
        - '@context'
        - id
        - type
      description: A response to a true false question
    VideoObject:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: VideoObject
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        duration:
          type: string
          format: duration
          description: >-
            An optional time interval that represents the total time required to
            view and/or listen to the MediaObject at normal speed. If a duration
            is specified the value MUST conform to the ISO 8601 duration format.
          example: PT1H17M50S
      required:
        - '@context'
        - id
        - type
      description: |-
        # VideoObject

        Represents a video object
    WebPage:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: WebPage
          description: The type of this entity. Must be set to 'WebPage'
          example: WebPage
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
      required:
        - '@context'
        - id
        - type
      description: |-
        # WebPage

        Represents a web page
    ToolUseEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: ToolUseEvent
          description: The type of this event. Must be set to 'ToolUseEvent'
          example: ToolUseEvent
        actor:
          type:
            - string
            - object
          description: The person that performed the tool use action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Used
          description: The action that was performed
          example: Used
        object:
          type:
            - string
            - object
          description: >-
            The SoftwareApplication that constitutes the object of the
            interaction, represented either as a URL string or an object
          example: https://example.edu/terms/201801/courses/7/resources/1
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: ToolUseProfile
          description: The profile that governs interpretation of this event
          example: ToolUseProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type:
            - string
            - object
          description: The aggregate measure that was generated as a result of the action
          example: https://example.edu/measures/001
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: A tool use event
    AnnotationEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: AnnotationEvent
          description: The type of this event. Must be set to 'AnnotationEvent'
          example: AnnotationEvent
        actor:
          type:
            - string
            - object
          description: The person that performed the annotation action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Bookmarked
            - Highlighted
            - Shared
            - Tagged
          description: The annotation action that was performed
          example: Highlighted
        object:
          type:
            - string
            - object
          description: The digital resource that was annotated
          example: https://example.edu/terms/201801/courses/7/resources/1
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: AnnotationProfile
          description: The profile that governs interpretation of this event
          example: AnnotationProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          $ref: '#/components/schemas/GeneratedAnnotation'
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
        - generated
      additionalProperties: false
      description: Represents an event where a user creates or modifies an annotation
    AssessmentEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: AssessmentEvent
          description: The type of this event. Must be set to 'AssessmentEvent'
          example: AssessmentEvent
        actor:
          type: &ref_27
            - string
            - object
          description: The person that performed the assessment action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Started
            - Paused
            - Resumed
            - Restarted
            - Submitted
          description: The assessment action that was performed
          example: Started
        object:
          type:
            - string
            - object
          description: The assessment that was acted upon
          example: https://example.edu/assessments/123
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: AssessmentProfile
          description: The profile that governs interpretation of this event
          example: AssessmentProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type:
            - string
            - object
          description: The attempt that was generated as a result of the action
          example: https://example.edu/attempts/123
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
        - generated
      additionalProperties: false
    AssessmentItemEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: AssessmentItemEvent
        actor:
          type: *ref_27
          description: The person that performed the assessment action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Started
            - Skipped
            - Completed
          description: The assessment item action that was performed
          example: Started
        object:
          type:
            - string
            - object
          description: The assessment item that was acted upon
          example: https://example.edu/assessment-items/123
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: AssessmentProfile
          description: The profile that governs interpretation of this event
          example: AssessmentProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type:
            - string
            - object
          description: >-
            The generated object depends on the action: Attempt for 'Started' or
            'Skipped', Response for 'Completed'
          example: https://example.edu/responses/123
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
    MediaEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: MediaEvent
          description: The type of this event. Must be set to 'MediaEvent'
          example: MediaEvent
        actor:
          type:
            - string
            - object
          description: The person that performed the media action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Started
            - Ended
            - Paused
            - Resumed
            - Restarted
            - ForwardedTo
            - JumpedTo
            - ChangedResolution
            - ChangedSize
            - ChangedSpeed
            - ChangedVolume
            - EnabledClosedCaptioning
            - DisabledClosedCaptioning
            - EnteredFullScreen
            - ExitedFullScreen
            - Muted
            - Unmuted
            - OpenedPopout
            - ClosedPopout
          description: The media action that was performed
          example: Started
        object:
          type:
            - string
            - object
          description: The media object that was interacted with
          example: https://example.edu/media/video1
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: MediaProfile
          description: The profile that governs interpretation of this event
          example: MediaProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type:
            - string
            - object
          description: >-
            The location within the media object that was the target of the
            action
          example: https://example.edu/media/video1/locations/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: >-
        Represents an event where a user interacts with media content such as
        audio, video, or images
    MediaNavigationEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: NavigationEvent
          description: The type of this event. Must be set to 'NavigationEvent'
          example: NavigationEvent
        actor:
          type:
            - string
            - object
          description: The person that performed the navigation action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - NavigatedTo
          description: The navigation action that was performed
          example: NavigatedTo
        object:
          type:
            - string
            - object
          description: The media object that was navigated to
          example: https://example.edu/media/video1
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: MediaProfile
          description: The profile that governs interpretation of this event
          example: MediaProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type:
            - string
            - object
          description: The location within the media object that was navigated to
          example: https://example.edu/media/video1/locations/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
        - target
      additionalProperties: false
      description: Represents a navigation event within media content
    MediaViewEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: ViewEvent
          description: The type of this event. Must be set to 'ViewEvent'
          example: ViewEvent
        actor:
          type:
            - string
            - object
          description: The person that performed the view action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Viewed
          description: The view action that was performed
          example: Viewed
        object:
          type:
            - string
            - object
          description: The media object that was viewed
          example: https://example.edu/media/video1
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: MediaProfile
          description: The profile that governs interpretation of this event
          example: MediaProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type:
            - string
            - object
          description: The optional location within the media object that was viewed
          example: https://example.edu/media/video1/locations/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents a view event of media content
    AssignableEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: AssignableEvent
          description: The type of this event. Must be set to 'AssignableEvent'
          example: AssignableEvent
        actor:
          type: &ref_29
            - string
            - object
          description: The person that performed the assignable action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Activated
            - Deactivated
            - Started
            - Completed
            - Submitted
            - Reviewed
          description: Actions available in the Assignable Profile
          example: Started
        object:
          type:
            - string
            - object
          description: The assignable digital resource that was acted upon
          example: https://example.edu/assignments/123
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: AssignableProfile
          description: The profile that governs interpretation of this event
          example: AssignableProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type:
            - string
            - object
          description: >-
            The attempt that was generated as a result of the action (only for
            Started, Completed, Submitted, and Reviewed actions)
          example: https://example.edu/attempts/123
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: >-
        Represents an event where a user interacts with an assignable digital
        resource
    AssignableNavigationEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: NavigationEvent
          description: The type of this event. Must be set to 'NavigationEvent'
          example: NavigationEvent
        actor:
          type: *ref_29
          description: The person that performed the assignable action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - NavigatedTo
          description: Navigation actions used in the Assignable Profile
          example: NavigatedTo
        object:
          type:
            - string
            - object
          description: The assignable digital resource that was navigated to
          example: https://example.edu/assignments/123
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: AssignableProfile
          description: The profile that governs interpretation of this event
          example: AssignableProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents a navigation event within an assignable digital resource
    AssignableViewEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: ViewEvent
          description: The type of this event. Must be set to 'ViewEvent'
          example: ViewEvent
        actor:
          type: *ref_29
          description: The person that performed the assignable action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Viewed
          description: View actions used in the Assignable Profile
          example: Viewed
        object:
          type:
            - string
            - object
          description: The assignable digital resource that was viewed
          example: https://example.edu/assignments/123
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: AssignableProfile
          description: The profile that governs interpretation of this event
          example: AssignableProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents a view event of an assignable digital resource
    FeedbackEvent:
      oneOf:
        - $ref: '#/components/schemas/FeedbackCommentEvent'
        - $ref: '#/components/schemas/FeedbackRankEvent'
      discriminator:
        propertyName: action
        mapping:
          Commented: '#/components/schemas/FeedbackCommentEvent'
          Ranked: '#/components/schemas/FeedbackRankEvent'
    ForumEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: ForumEvent
          description: The type of this event. Must be set to 'ForumEvent'
          example: ForumEvent
        actor:
          type: &ref_30
            - string
            - object
          description: The person that performed the action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Subscribed
            - Unsubscribed
          description: The forum action that was performed
          example: Subscribed
        object:
          type:
            - string
            - object
          description: The forum that was acted upon
          example: https://example.edu/forums/1
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: ForumProfile
          description: The profile that governs interpretation of this event
          example: ForumProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents an event related to forum subscription
    ThreadEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: ThreadEvent
          description: The type of this event. Must be set to 'ThreadEvent'
          example: ThreadEvent
        actor:
          type: *ref_30
          description: The person that performed the action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - MarkedAsRead
            - MarkedAsUnRead
          description: The thread action that was performed
          example: MarkedAsRead
        object:
          type:
            - string
            - object
          description: The thread that was acted upon
          example: https://example.edu/forums/1/threads/1
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: ForumProfile
          description: The profile that governs interpretation of this event
          example: ForumProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents an event related to thread interaction
    MessageEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: MessageEvent
          description: The type of this event. Must be set to 'MessageEvent'
          example: MessageEvent
        actor:
          type: *ref_30
          description: The person that performed the action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - MarkedAsRead
            - MarkedAsUnRead
            - Posted
          description: The message action that was performed
          example: Posted
        object:
          type:
            - string
            - object
          description: The message that was acted upon
          example: https://example.edu/forums/1/messages/1
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: ForumProfile
          description: The profile that governs interpretation of this event
          example: ForumProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents an event related to message interaction
    ForumNavigationEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: NavigationEvent
          description: The type of this event. Must be set to 'NavigationEvent'
          example: NavigationEvent
        actor:
          type: *ref_30
          description: The person that performed the action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - NavigatedTo
          description: The navigation action that was performed
          example: NavigatedTo
        object:
          type: &ref_31
            - string
            - object
          description: The forum, thread, or message that was acted upon
          example: https://example.edu/forums/1
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: ForumProfile
          description: The profile that governs interpretation of this event
          example: ForumProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents a navigation event within a forum
    ForumViewEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: ViewEvent
          description: The type of this event. Must be set to 'ViewEvent'
          example: ViewEvent
        actor:
          type: *ref_30
          description: The person that performed the action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Viewed
          description: The view action that was performed
          example: Viewed
        object:
          type: *ref_31
          description: The forum, thread, or message that was acted upon
          example: https://example.edu/forums/1
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: ForumProfile
          description: The profile that governs interpretation of this event
          example: ForumProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents a view event of forum content
    GradeEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: GradeEvent
          description: The type of this event. Must be set to 'GradeEvent'
          example: GradeEvent
        actor:
          type:
            - string
            - object
          description: >-
            The agent (person or software application) that performed the
            grading action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Graded
          description: Actions available in the Grading Profile
          example: Graded
        object:
          type:
            - string
            - object
          description: The attempt that was graded
          example: https://example.edu/attempts/123
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: GradingProfile
          description: The profile that governs interpretation of this event
          example: GradingProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type:
            - string
            - object
          description: The score that was generated as a result of the grading action
          example: https://example.edu/scores/123
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
        - generated
      additionalProperties: false
    ViewEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: ViewEvent
          description: The type of this event. Must be set to 'ViewEvent'
          example: ViewEvent
        actor:
          type:
            - string
            - object
          description: The person that viewed the result
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Viewed
          description: View actions used in the Grading Profile
          example: Viewed
        object:
          type:
            - string
            - object
          description: The result that was viewed
          example: https://example.edu/results/123
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: GradingProfile
          description: The profile that governs interpretation of this event
          example: GradingProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
    ReadingNavigationEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: NavigationEvent
        actor:
          type: &ref_32
            - string
            - object
          description: The person that performed the reading action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - NavigatedTo
          description: Navigation actions used in the Reading Profile
          example: NavigatedTo
        object:
          type:
            - string
            - object
          description: The digital resource that was navigated to
          example: https://example.edu/reading/123
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: ReadingProfile
          description: The profile that governs interpretation of this event
          example: ReadingProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type:
            - string
            - object
          description: The target digital resource that was navigated to
          example: https://example.edu/reading/123#target
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
    ReadingViewEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: ViewEvent
        actor:
          type: *ref_32
          description: The person that performed the reading action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Viewed
          description: View actions used in the Reading Profile
          example: Viewed
        object:
          type:
            - string
            - object
          description: The digital resource that was viewed
          example: https://example.edu/reading/123
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: ReadingProfile
          description: The profile that governs interpretation of this event
          example: ReadingProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type:
            - string
            - object
          description: The target digital resource that was viewed
          example: https://example.edu/reading/123#target
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
    ResourceManagementEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: ResourceManagementEvent
          description: The type of this event. Must be set to 'ResourceManagementEvent'
          example: ResourceManagementEvent
        actor:
          type:
            - string
            - object
          description: The person that performed the resource management action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Created
            - Copied
            - Modified
            - Deleted
            - Described
            - Downloaded
            - Uploaded
            - Retrieved
            - Printed
            - Published
            - Unpublished
            - Archived
            - Restored
            - Saved
          description: The resource management action that was performed
          example: Created
        object:
          type:
            - string
            - object
          description: The digital resource that was acted upon
          example: https://example.edu/resources/1
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: ResourceManagementProfile
          description: The profile that governs interpretation of this event
          example: ResourceManagementProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type:
            - string
            - object
          description: >-
            The digital resource that was generated as a result of the action
            (only required for 'Copied' action)
          example: https://example.edu/resources/2
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents an event related to resource management activities
    SearchEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: SearchEvent
          description: The type of this event. Must be set to ''SearchEvent
          example: SearchEvent
        actor:
          type:
            - string
            - object
          description: The person that performed the search action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Searched
          description: The search action that was performed
          example: Searched
        object:
          type:
            - string
            - object
          description: The digital resource or software application that was searched
          example: https://example.edu/resources/123
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: SearchProfile
          description: The profile that governs interpretation of this event
          example: SearchProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type:
            - string
            - object
          description: >-
            The search provider that describes the search criteria, count of
            search results returned, and the search results
          example: https://example.edu/resources/123456
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents an event related to searching a resource
    SessionEvent:
      oneOf:
        - $ref: '#/components/schemas/SessionLoggedInEvent'
        - $ref: '#/components/schemas/SessionTimedOutEvent'
      discriminator:
        propertyName: action
        mapping:
          LoggedIn: '#/components/schemas/SessionLoggedInEvent'
          LoggedOut: '#/components/schemas/SessionLoggedInEvent'
          TimedOut: '#/components/schemas/SessionTimedOutEvent'
    SurveyInvitationEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: SurveyInvitationEvent
          description: The type of this event. Must be set to 'SurveyInvitationEvent'
          example: SurveyInvitationEvent
        actor:
          type: &ref_33
            - string
            - object
          description: The person that performed the action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Sent
            - Accepted
            - Declined
          description: The survey invitation action that was performed
          example: Sent
        object:
          type:
            - string
            - object
          description: The survey invitation that was acted upon
          example: https://example.edu/surveys/1/invitations/1
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: SurveyProfile
          description: The profile that governs interpretation of this event
          example: SurveyProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents an event related to survey invitations
    SurveyEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: SurveyEvent
          description: The type of this event. Must be set to 'SurveyEvent'
          example: SurveyEvent
        actor:
          type: *ref_33
          description: The person that performed the action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - OptedIn
            - OptedOut
          description: The survey action that was performed
          example: OptedIn
        object:
          type:
            - string
            - object
          description: The survey that was acted upon
          example: https://example.edu/surveys/1
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: SurveyProfile
          description: The profile that governs interpretation of this event
          example: SurveyProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents an event related to survey participation
    QuestionnaireEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: QuestionnaireEvent
          description: The type of this event. Must be set to 'QuestionnaireEvent'
          example: QuestionnaireEvent
        actor:
          type: *ref_33
          description: The person that performed the action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Started
            - Submitted
          description: The questionnaire action that was performed
          example: Started
        object:
          type:
            - string
            - object
          description: The questionnaire that was acted upon
          example: https://example.edu/surveys/1/questionnaire
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: SurveyProfile
          description: The profile that governs interpretation of this event
          example: SurveyProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type:
            - string
            - object
          description: The attempt that was generated by this event
          example: https://example.edu/surveys/1/attempts/1
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents an event related to questionnaire interaction
    QuestionnaireItemEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: QuestionnaireItemEvent
          description: The type of this event. Must be set to 'QuestionnaireItemEvent'
          example: QuestionnaireItemEvent
        actor:
          type: *ref_33
          description: The person that performed the action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Started
            - Skipped
            - Completed
          description: The questionnaire item action that was performed
          example: Started
        object:
          type:
            - string
            - object
          description: The questionnaire item that was acted upon
          example: https://example.edu/surveys/1/items/1
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: SurveyProfile
          description: The profile that governs interpretation of this event
          example: SurveyProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type:
            - string
            - object
          description: The attempt or response that was generated by this event
          example: https://example.edu/surveys/1/attempts/1
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
        - generated
      additionalProperties: false
      description: Represents an event related to questionnaire item interaction
    SurveyNavigationEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: NavigationEvent
          description: The type of this event. Must be set to 'NavigationEvent'
          example: NavigationEvent
        actor:
          type: *ref_33
          description: The person that performed the action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - NavigatedTo
          description: The navigation action that was performed
          example: NavigatedTo
        object:
          type: &ref_34
            - string
            - object
          description: The questionnaire or item that was acted upon
          example: https://example.edu/surveys/1/questionnaire
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: SurveyProfile
          description: The profile that governs interpretation of this event
          example: SurveyProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents a navigation event within a survey
    SurveyViewEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: ViewEvent
          description: The type of this event. Must be set to 'ViewEvent'
          example: ViewEvent
        actor:
          type: *ref_33
          description: The person that performed the action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Viewed
          description: The view action that was performed
          example: Viewed
        object:
          type: *ref_34
          description: The questionnaire or item that was acted upon
          example: https://example.edu/surveys/1/questionnaire
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: SurveyProfile
          description: The profile that governs interpretation of this event
          example: SurveyProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents a view event of survey content
    ToolLaunchEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: ToolLaunchEvent
          description: The type of this event. Must be set to 'ToolLaunchEvent'
          example: ToolLaunchEvent
        actor:
          type:
            - string
            - object
          description: The person that performed the tool launch action
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - Launched
            - Returned
          description: The tool launch action that was performed
          example: Launched
        object:
          type:
            - string
            - object
          description: The software application that was launched or returned from
          example: https://example.edu/tools/calculator
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: ToolLaunchProfile
          description: The profile that governs interpretation of this event
          example: ToolLaunchProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type:
            - string
            - object
          description: The digital resource that was generated as a result of the action
          example: https://example.edu/resources/123
        target:
          type:
            - string
            - object
          description: The target link that was used for the tool launch
          example: https://example.edu/lti/links/123
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
    TimebackActivityEvent:
      oneOf:
        - $ref: '#/components/schemas/TimebackActivityCompletedEvent'
      discriminator:
        propertyName: action
        mapping:
          Completed: '#/components/schemas/TimebackActivityCompletedEvent'
      description: >
        # TimebackActivityEvent


        Represents an activity event in the context of the Timeback application.


        This event is used to track the completion of an activity.   


        The object of this event is the activity context where the event was
        recorded.


        The actor of this event is the timeback user who completed the activity.


        The event requires a generated metrics attribute to work.


        For now we only support "**Completed**" as an action. In the future we
        may support other actions.
    TimebackTimeSpentEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: TimeSpentEvent
        actor:
          $ref: '#/components/schemas/TimebackUser'
        action:
          type: string
          const: SpentTime
        object:
          $ref: '#/components/schemas/TimebackActivityContext'
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: TimebackProfile
          description: The profile that governs interpretation of this event
          example: TimebackProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          $ref: '#/components/schemas/TimebackTimeSpentMetricsCollection'
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
        - generated
      description: >
        # TimebackTimeSpentEvent


        Represents a student time spent activity in the context of an app using
        the timeback platform.


        This event is used to track the time spent and the quality of the time
        spent by a student on an activity.


        The object of this event is the activity context where the event was
        recorded.


        The actor of this event is the timeback user who spent time on the
        activity.


        The event requires a generated metrics attribute to work.


        The metrics can indicate a parent type of metric:  'active' | 'inactive'
        | 'waste'


        A subType is also included for more specific representation of the
        activity recorded.
    Entity:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          description: >-
            The type of this entity. Must match the term specified in the
            Caliper information model
          example: Entity
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
      required:
        - id
        - type
      additionalProperties: false
      description: >-
        # Entity


        Represents a generic Caliper Entity that participates in
        learning-related activities.

        Can be provided in an envelope for context.
    Agent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
        type:
          type: string
          const: Agent
          description: The type of this agent. Must be set to 'Agent'
          example: Agent
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
      required:
        - '@context'
        - id
        - type
      additionalProperties: false
      description: |-
        # Agent

        Represents a generic Agent capable of initiating or performing actions.
        Use a more specific agent type when possible.
    Annotation:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Annotation
          description: The type of this entity. Must be set to 'Annotation'
          example: Annotation
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        annotator:
          type: *ref_14
          description: The person that made the annotation
          example: https://example.edu/users/554433
        annotated:
          type: *ref_15
      required:
        - '@context'
        - id
        - type
        - annotator
        - annotated
      description: >-
        # Annotation


        Generic annotation type, represents annotations made on digital
        resources.

        Use this type if no other annotation type is more specific.
    DigitalResource:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: DigitalResource
          description: The type of this entity. Must be set to 'DigitalResource'
          example: DigitalResource
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
      required:
        - '@context'
        - id
        - type
      description: >-
        # DigitalResource


        Represents a digital resource such as a file, image, or video, survey,
        thread and other resources.


        See the
        [specification](https://www.imsglobal.org/spec/caliper/v1p2#digitalresource)
        for a list of all digital resources.
    AssignableDigitalResource:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: AssignableDigitalResource
          description: The type of this entity. Must be set to 'AssignableDigitalResource'
          example: AssignableDigitalResource
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        dateToActivate:
          type: string
          format: date-time
          description: The datetime when this was activated
          example: '2023-08-15T14:00:00.000Z'
        dateToShow:
          type: string
          format: date-time
          description: ' describes when the resource should be shown or made available to learners'
          example: '2023-08-15T14:00:00.000Z'
        dateToStartOn:
          type: string
          format: date-time
          description: The datetime when this resource becomes available to learners
          example: '2023-08-15T14:00:00.000Z'
        dateToSubmit:
          type: string
          format: date-time
          description: The datetime when this resource is due
          example: '2023-08-22T23:59:59.000Z'
        maxAttempts:
          type: number
          description: >-
            A non-negative integer that designates the number of permitted
            attempts.
          example: 3
        maxSubmits:
          type: number
          description: >-
            A non-negative integer that designates the number of permitted
            submissions.
          example: 3
        maxScore:
          type: number
          description: The maximum possible score for this assignable resource
          example: 100
      required:
        - '@context'
        - id
        - type
      description: >-
        # AssignableDigitalResource


        Represents a digital resource that can be assigned to learners with
        associated dates and scoring information
    MediaObject:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: MediaObject
          description: The type of this entity. Must be set to 'MediaObject'
          example: MediaObject
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        duration:
          type: string
          format: duration
          description: >-
            An optional time interval that represents the total time required to
            view and/or listen to the MediaObject at normal speed. If a duration
            is specified the value MUST conform to the ISO 8601 duration format.
          example: PT1H17M50S
      required:
        - '@context'
        - id
        - type
      description: |-
        # MediaObject

        Represents a media object such as an audio or video file
    DatetimeQuestion:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: DatetimeQuestion
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        questionPosed:
          type: string
          description: A question that has been posed to a user
          example: What is the capital of France?
        minDateTime:
          type: string
          format: date-time
          description: The minimum date and time that can be selected
          example: '2021-01-01T00:00:00Z'
        minLabel:
          type: string
          description: The label for the minimum date and time
          example: Min
        maxDateTime:
          type: string
          format: date-time
          description: The maximum date and time that can be selected
          example: '2021-01-01T00:00:00Z'
        maxLabel:
          type: string
          description: The label for the maximum date and time
          example: Max
      required:
        - '@context'
        - id
        - type
      description: >-
        # DatetimeQuestion


        A Caliper DateTimeQuestion represents a closed-end question type with
        the response provided in a date and time format.
    OpenEndedQuestion:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: OpenEndedQuestion
          description: The type of question, must be OpenEndedQuestion
          example: OpenEndedQuestion
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        questionPosed:
          type: string
          description: A question that has been posed to a user
          example: What is the capital of France?
      required:
        - '@context'
        - id
        - type
      description: >-
        # OpenEndedQuestion


        A Caliper OpenEndedQuestion represents a question with no pre-defined
        response. 

        Respondents can record their response in the form of qualitative
        feedback with no length limit imposed.
      example:
        '@context': http://purl.imsglobal.org/ctx/caliper/v1p2
        id: https://example.edu/surveys/100/questionnaires/30/items/2/question
        type: OpenEndedQuestion
        questionPosed: What would you change about your course?
    MultiSelectQuestion:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: MultiselectQuestion
          description: The type of question, must be MultiselectQuestion
          example: MultiselectQuestion
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        storageName:
          type: string
          description: The name of resource when stored in a file system
          example: lecture-01.pdf
        creators:
          type: array
          items:
            type: *ref_5
          description: >-
            An ordered collection of Agent entities responsible for bringing
            resource into being
          example: *ref_6
        mediaType:
          type: string
          description: The media type of the resource from IANA approved media types
          example: application/pdf
        keywords:
          type: array
          items:
            type: string
          description: >-
            An array of keywords or tags used to define or categorize the
            resource
          example: *ref_7
        learningObjectives:
          type: array
          items:
            type: *ref_8
          description: >-
            An array of learning objectives associated with this resource. See
            [@LearningObjective](#model/learningobjective)
          example: *ref_9
        isPartOf:
          type: *ref_10
          description: The parent resource of which this resource is a part
          example: https://example.edu/courses/biology/101/resources
        datePublished:
          type: string
          format: date-time
          description: The date and time at which the resource was published
          example: '2023-08-15T14:12:00.000Z'
        version:
          type: string
          description: >-
            A string value that designates the current form or version of the
            resource
          example: 1.0.0
        questionPosed:
          type: string
          description: A question that has been posed to a user
          example: What is the capital of France?
        points:
          type: number
          description: >-
            A integer value used to determine the amount of points on the
            MultiselectQuestion.
          example: 10
        itemLabels:
          type: array
          items:
            type: string
          description: >-
            An array of strings that represent the labels for the items in the
            MultiselectQuestion.
          example:
            - Item 1
            - Item 2
            - Item 3
        itemValues:
          type: array
          items:
            type: string
          description: >-
            An array of strings that represent the values for the items in the
            MultiselectQuestion.
          example:
            - Value 1
            - Value 2
            - Value 3
      required:
        - '@context'
        - id
        - type
      description: >-
        # MultiSelectQuestion


        A Caliper MultiSelectQuestion represents a closed-end question type with
        the response provided in a multiple-choice format.
      example:
        '@context': http://purl.imsglobal.org/ctx/caliper/v1p2
        id: https://example.edu/surveys/100/questionnaires/30/items/4/question
        type: MultiselectQuestion
        questionPosed: What do you want to study today?
        points: 4
        itemLabels:
          - Calculus
          - Number theory
          - Combinatorics
          - Algebra
        itemValues:
          - https://example.edu/terms/201801/courses/7/sections/1/objectives/1
          - https://example.edu/terms/201801/courses/7/sections/1/objectives/2
          - https://example.edu/terms/201801/courses/7/sections/1/objectives/3
          - https://example.edu/terms/201801/courses/7/sections/1/objectives/4
    Scale:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Scale
          description: The type of entity, must be Scale
          example: Scale
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
      required:
        - '@context'
        - id
        - type
      description: >-
        # Scale


        A Caliper Scale is a generic type that represents a scale employed in
        order to capture some rating. 

        Utilize Scale only if no suitable subtype exists to represent the scale
        being described.
      example: *ref_35
    Response:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          format: uri
          description: >-
            The unique identifier for this entity. Must be a valid IRI and
            should be dereferenceable
          example: https://example.edu/entity/554433
        type:
          type: string
          const: Response
        name:
          type: string
          description: A word or phrase by which the entity is known
          example: John Doe
        description:
          type: string
          description: A brief, written representation of the entity
          example: A student at Example University
        dateCreated:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was created
          example: '2023-08-15T14:12:00.000Z'
        dateModified:
          type: string
          format: date-time
          description: ISO 8601 datetime when this entity was last modified
          example: '2023-08-15T14:12:00.000Z'
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
        otherIdentifiers:
          type: array
          items:
            type:
              - string
              - object
        attempt:
          type: *ref_13
          description: The attempt that the response belongs to
          example: https://example.edu/attempts/1234
        startedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was started
          example: '2021-01-01T00:00:00Z'
        endedAtTime:
          type: string
          format: date-time
          description: The date and time the attempt was ended
          example: '2021-01-01T00:00:00Z'
        duration:
          type: string
          format: duration
          description: The duration of the attempt in seconds
          example: PT50M30S
      required:
        - '@context'
        - id
        - type
      description: >-
        A Caliper Response is a generic type that represents the selected option
        generated by a Person interacting with a DigitalResource such as an
        AssessmentItem or QuestionnaireItem. 
            Utilize Response only if no suitable subtype exists to represent the response being described.
    TimebackActivityMetric:
      type: object
      properties:
        type:
          type: string
          enum:
            - xpEarned
            - totalQuestions
            - correctQuestions
            - masteredUnits
        value:
          type: number
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
      required:
        - type
        - value
      description: >
        # TimebackActivityMetric


        Represents a metric for an activity.


        Each metric represents a single metric for a student's activity.


        Supported metrics: xpEarned, totalQuestions, correctQuestions,
        masteredUnits
    TimeSpentMetric:
      type: object
      properties:
        type:
          type: string
          enum:
            - active
            - inactive
            - waste
            - unknown
            - anti-pattern
        subType:
          type: string
        value:
          type: number
          maximum: 86400
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_4
      required:
        - type
        - value
      description: |
        # TimeSpentMetric

        Represents a time spent metric in seconds.

        Supported types: active, inactive, waste, unknown, anti-pattern
    GeneratedAnnotation:
      type:
        - string
        - object
      description: The annotation that was generated as a result of the action
      example: https://example.edu/users/554433/annotations/1
    FeedbackCommentEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: FeedbackEvent
          description: The type of this event. Must be set to ''FeedbackEvent
          example: FeedbackEvent
        actor:
          type: &ref_36
            - string
            - object
          description: The person that performed the feeeback action
          example: https://example.edu/users/554433
        action:
          type: string
          const: Commented
          description: The type of this event. Must be set to 'Commented'
          example: Commented
        object:
          type: &ref_37
            - string
            - object
          description: The Entity that is the target of the feedback
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: FeedbackProfile
          description: The profile that governs interpretation of this event
          example: FeedbackProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type:
            - string
            - object
          description: The Comment entity that describes the feedback provided
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assess/1/items/6/users/665544/responses/1/comment/1
        target:
          type: &ref_38
            - string
            - object
          description: >-
            If the object of the feedback is a particular segment of a
            DigitalResource use a Frame to mark its location
          example: https://example.edu/etexts/201?index=2502
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
    FeedbackRankEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: FeedbackEvent
          description: The type of this event. Must be set to ''FeedbackEvent
          example: FeedbackEvent
        actor:
          type: *ref_36
          description: The person that performed the feeeback action
          example: https://example.edu/users/554433
        action:
          type: string
          const: Ranked
          description: The type of this event. Must be set to 'Ranked'
          example: Ranked
        object:
          type: *ref_37
          description: The Entity that is the target of the feedback
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: FeedbackProfile
          description: The profile that governs interpretation of this event
          example: FeedbackProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type:
            - string
            - object
          description: The Rating entity that describes the feedback provided
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assess/1/items/6/users/665544/responses/1/rating/1
        target:
          type: *ref_38
          description: >-
            If the object of the feedback is a particular segment of a
            DigitalResource use a Frame to mark its location
          example: https://example.edu/etexts/201?index=2502
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
    SessionLoggedInEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: SessionEvent
          description: The type of this event. Must be set to ''SessionEvent
          example: SessionEvent
        actor:
          type:
            - string
            - object
          description: >-
            The person that performed the session action for LoggedIn or
            LoggedOut actions
          example: https://example.edu/users/554433
        action:
          type: string
          enum:
            - LoggedIn
            - LoggedOut
          description: The session action that was performed
          example: LoggedIn
        object:
          type:
            - string
            - object
          description: The object of the session event
          example: https://example.edu/software/123456
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: SessionProfile
          description: The profile that governs interpretation of this event
          example: SessionProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type:
            - string
            - object
          description: The target of the session event
          example: https://example.edu/resources/123456
        referrer:
          type: &ref_39
            - string
            - object
          description: The referrer of the session event
          example: https://example.edu/resources/123456
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents an event related to session logging in and out
    SessionTimedOutEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: SessionEvent
          description: The type of this event. Must be set to ''SessionEvent
          example: SessionEvent
        actor:
          type:
            - string
            - object
          description: The software that performed the session action for TimedOut actions
          example: https://example.edu/software/123456
        action:
          type: string
          enum:
            - TimedOut
          description: The session action that was performed
          example: TimedOut
        object:
          type:
            - string
            - object
          description: The object of the session event
          example: https://example.edu/sessions/123456
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: SessionProfile
          description: The profile that governs interpretation of this event
          example: SessionProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          type: *ref_28
          description: Entity generated as a result of the interaction
          example: https://example.edu/users/554433/responses/1
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_39
          description: The referrer of the session event
          example: https://example.edu/resources/123456
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
      additionalProperties: false
      description: Represents an event related to session timed out
    TimebackActivityCompletedEvent:
      type: object
      properties:
        '@context':
          type: string
          format: uri
          default: http://purl.imsglobal.org/ctx/caliper/v1p2
          description: The context of the Caliper entity data
          example: http://purl.imsglobal.org/ctx/caliper/v1p2
        id:
          type: string
          pattern: ^urn:uuid:(.*)$
          description: Unique identifier for this event. Must be a UUID expressed as a URN
          example: urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594
        type:
          type: string
          const: ActivityEvent
        actor:
          $ref: '#/components/schemas/TimebackUser'
        action:
          type: string
          const: Completed
        object:
          $ref: '#/components/schemas/TimebackActivityContext'
        eventTime:
          type: string
          format: date-time
          description: ISO 8601 datetime when this event occurred
          example: '2023-08-15T14:12:00.000Z'
        profile:
          type: string
          const: TimebackProfile
          description: The profile that governs interpretation of this event
          example: TimebackProfile
        edApp:
          type: *ref_18
          description: The application context
          example: https://example.edu/apps/learning-management
        generated:
          $ref: '#/components/schemas/TimebackActivityMetricsCollection'
        target:
          type: *ref_19
          description: >-
            Entity that represents a particular segment or location within the
            object
          example: >-
            https://example.edu/terms/201801/courses/7/sections/1/assignments/1/items/1
        referrer:
          type: *ref_20
          description: Entity that represents the referring context
          example: https://example.edu/terms/201801/courses/7/sections/1
        group:
          type: *ref_21
          description: >-
            An Organization that represents the group context. Can be either a
            URI or an Organization entity object
          example: *ref_22
        membership:
          type: *ref_23
          description: >-
            The relationship between the action and the group in terms of roles
            and status
          example: https://example.edu/terms/201801/courses/7/sections/1/rosters/1
        session:
          type: *ref_24
          description: The current user Session
          example: >-
            https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259
        federatedSession:
          type: *ref_25
          description: >-
            If the Event occurs within the context of an LTI platform launch,
            the tool's LtiSession
          example: https://example.edu/lti-sessions/b533eb02823f31024765305dd3af7b5e
        extensions:
          type: object
          additionalProperties: {}
          description: Additional attributes not defined by the model
          example: *ref_26
      required:
        - '@context'
        - id
        - type
        - actor
        - action
        - object
        - eventTime
        - profile
        - generated
