x-generator: NSwag v13.18.2.0 (NJsonSchema v10.8.0.0 (Newtonsoft.Json v11.0.0.0))
swagger: '2.0'
info:
  title: Absorb Integration API
  version: v1
consumes:
  - application/json
produces:
  - application/json
paths:
  /users/{userId}/enrollments/{courseId}/sessions:
    get:
      tags:
        - Session Enrollments
      summary: List user's session enrollments for specific course.
      operationId: SessionEnrollments_GetUserSessionEnrollments
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The user ID.
          format: guid
          x-nullable: false
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: integer
          name: status
          in: query
          description: >-
            The specified status to filter by.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: modifiedSince
          in: query
          description: >-
            The specified date for filtering enrollments that were edited after
            this date.
          format: date-time
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            type: array
            items:
              $ref: '#/definitions/NonPagedSessionEnrollmentResource'
        '404':
          x-nullable: false
          description: User or course not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /users/{userId}/enrollments/{courseId}/sessions/{sessionId}:
    get:
      tags:
        - Session Enrollments
      summary: Get user's session enrollment for specific course.
      operationId: SessionEnrollments_GetUserSessionEnrollment
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The user ID.
          format: guid
          x-nullable: false
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: sessionId
          in: path
          required: true
          description: The session ID.
          format: guid
          x-nullable: false
        - type: integer
          name: status
          in: query
          description: >-
            The specified status to filter by.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: modifiedSince
          in: query
          description: >-
            The specified date for filtering enrollments that were edited after
            this date.
          format: date-time
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/NonPagedSessionEnrollmentResource'
        '404':
          x-nullable: false
          description: User, course, or session not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /courses/{courseId}/sessions/{sessionId}/enrollments:
    get:
      tags:
        - Session Enrollments
      summary: List an ILC's session enrollments.
      operationId: SessionEnrollments_GetCourseSessionEnrollments
      parameters:
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: sessionId
          in: path
          required: true
          description: The session ID.
          format: guid
          x-nullable: false
        - type: integer
          name: status
          in: query
          description: >-
            The specified status to filter by.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: modifiedSince
          in: query
          description: >-
            The specified date for filtering enrollments that were edited after
            this date.
          format: date-time
          x-nullable: true
        - type: string
          name: _filter
          in: query
          description: >-
            One or more filter operations to be performed on the collection.

            The referenced fields must allow filtering. See the respective
            report's schema for which fields can be filtered. 
                        
            Supports most of the [OData filter
            syntax](http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_SystemQueryOptionfilter).
                        
            Supported operations:
                * eq,
                * ne,
                * gt,
                * ge,
                * lt,
                * le,
                * and,
                * or,
                * not,
                * ()

            Supported functions:
                * substringof('value',fieldName),
                * endswith(fieldName,'value'),
                * startswith(fieldName,'value'),
                * tolower(fieldName),
                * toupper(fieldName)
                        
            Examples:

            * _filter=`firstname eq 'Jeffrey'`

            * _filter=`id eq guid'a14c149a-2ce0-41d4-b532-02189ad3cb22'`

            * _filter=`startsWith(lastname,'leb') or dateAdded ge
            datetime'1998-03-06T20:38:07Z'`
          x-nullable: true
        - type: string
          name: _sort
          in: query
          description: >-
            Optional list of comma-separated fields to sort the collection by.


            The referenced fields must allow sorting. See the respective
            report's schema for which fields can be sorted. 

            If not specified, all report fields are returned.


            To sort in a descending manner, prefix the field name with `-`. For
            example, 

            `_sort=name,-date`, sorts the collection of items by `name`
            (ascending) 

            and then by `date` (descending).
          x-nullable: true
        - type: string
          name: _limit
          in: query
          description: >-
            The maximum number of items to return in the current page of the
            collection.
          x-nullable: true
        - type: string
          name: _offset
          in: query
          description: The number of pages to offset into the collection.
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            type: array
            items:
              $ref: '#/definitions/SessionEnrollmentResource'
        '404':
          x-nullable: false
          description: Course or session not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '422':
          x-nullable: false
          description: A validation error occured with the provided parameters.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /users/{userId}/enrollments/{courseId}/session/{sessionId}:
    post:
      tags:
        - Session Enrollments
      summary: Create ILC enrollment for user.
      description: >-
        Creates a new ILC enrollment and Session enrollment in the specific ILC
        course for a specific user.

        Additionally, supports re-enrollment and canceling of an existing
        session enrollment.
      operationId: SessionEnrollments_EnrollUserInSessionById
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The user ID.
          format: guid
          x-nullable: false
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: sessionId
          in: path
          required: true
          description: The session ID.
          format: guid
          x-nullable: false
        - type: boolean
          name: reEnroll
          in: query
          description: >-
            If true, the user will be re-enrolled in the specified session,
            false otherwise.
          x-nullable: false
        - type: boolean
          name: cancelSession
          in: query
          description: >-
            If true, the existing session enrollment will be cancelled, false
            otherwise.
          x-nullable: false
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          description: User successfully unenrolled from session.
        '201':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/PostSessionEnrollmentResource'
        '400':
          x-nullable: false
          description: User not enrolled in course or session.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '404':
          x-nullable: false
          description: User, course, or session not found
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '422':
          x-nullable: false
          description: A validation error occured with the provided parameters.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /users/{userId}/enrollments/{courseId}/chapters:
    get:
      tags:
        - Chapter Enrollments
      summary: List chapter enrollments for a specified course.
      operationId: ChapterEnrollments_GetChaptersByUserEnrollmentId
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The user ID.
          format: guid
          x-nullable: false
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: integer
          name: status
          in: query
          description: >-
            The enrollment status.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: modifiedSince
          in: query
          description: The last modified date and time.
          format: date-time
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            type: array
            items:
              $ref: '#/definitions/ChapterEnrollmentResource'
        '404':
          x-nullable: false
          description: User or course not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /users/{userId}/enrollments/{courseId}/chapters/{chapterId}:
    get:
      tags:
        - Chapter Enrollments
      summary: Get chapter enrollment for a specified course.
      operationId: ChapterEnrollments_GetChapterByIdByUserEnrollmentId
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The user ID.
          format: guid
          x-nullable: false
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: chapterId
          in: path
          required: true
          description: The chapter ID.
          format: guid
          x-nullable: false
        - type: integer
          name: status
          in: query
          description: >-
            The enrollment status.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: modifiedSince
          in: query
          description: The last modified date and time.
          format: date-time
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/ChapterEnrollmentResource'
        '404':
          x-nullable: false
          description: User, course, or chapter not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /users/{userId}/enrollments/{courseId}:
    post:
      tags:
        - Enrollments
      summary: Create enrollment for user and course.
      description: Multi-Session ILCs are not supported.
      operationId: Enrollments_EnrollUserInCourseById
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The user ID.
          format: guid
          x-nullable: false
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: boolean
          name: reEnroll
          in: query
          description: If true, the user will be re-enrolled in the specified course.
          x-nullable: false
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '201':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/EnrollUserEnrollmentResource'
        '400':
          x-nullable: false
          description: Multi-session ILCs are not supported.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '404':
          x-nullable: false
          description: Course or user not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '422':
          x-nullable: false
          description: A validation error occured with the provided parameters.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
    get:
      tags:
        - Enrollments
      summary: Get user's enrollment for specific course.
      operationId: Enrollments_GetUserEnrollmentsByCourseId
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The user's ID.
          format: guid
          x-nullable: false
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: integer
          name: status
          in: query
          description: >-
            The enrollment status.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: modifiedSince
          in: query
          description: The last modified date and time.
          format: date-time
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/NonPagedUserCourseEnrollmentResource'
        '404':
          x-nullable: false
          description: Course or user not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /users/{userId}/enrollments:
    post:
      tags:
        - Enrollments
      summary: Create or update course enrollment.
      description: Multi-Session ILCs are not supported.
      operationId: Enrollments_EnrollUserInCourse
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The user ID.
          format: guid
          x-nullable: false
        - type: boolean
          name: reEnroll
          in: query
          description: If true, the user will be re-enrolled in the specified course.
          x-nullable: false
        - name: courseEnrollmentModel
          in: body
          description: >-
            The model of the data for a course enrollment. Settable properties
            are Status, DateCompleted, DateExpires, CourseVersionId,
            AcceptedTermsAndConditions, EnrollmentKeyId, Credits, Score
          schema:
            $ref: '#/definitions/EnrollUserInCourseRequestBody'
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '201':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/EnrollUserEnrollmentResource'
        '400':
          x-nullable: false
          description: Could not process credits or ILC has multi-session enrollments.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '404':
          x-nullable: false
          description: Course or user not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '422':
          x-nullable: false
          description: A validation error occured with the provided parameters.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
    get:
      tags:
        - Enrollments
      summary: List course enrollments for specific user.
      description: Supports pagination, filtering, and sorting.
      operationId: Enrollments_GetUserEnrollments
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The user ID.
          format: guid
          x-nullable: false
        - type: string
          name: modifiedSince
          in: query
          description: >-
            *(Deprecated)* The specified date for filtering enrollments that
            were edited after this date.
          format: date-time
          x-nullable: true
        - type: integer
          name: status
          in: query
          description: >-
            *(Deprecated)* The specified status to filter by.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: limit
          in: query
          description: >-
            *(Deprecated)* The maximum number of items to return in the current
            page of the collection.
          x-nullable: true
        - type: string
          name: offset
          in: query
          description: '*(Deprecated)* The number of pages to offset into the collection.'
          x-nullable: true
        - type: string
          name: _filter
          in: query
          description: >-
            One or more filter operations to be performed on the collection.

            The referenced fields must allow filtering. See the respective
            report's schema for which fields can be filtered. 
                        
            Supports most of the [OData filter
            syntax](http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_SystemQueryOptionfilter).
                        
            Supported operations:
                * eq,
                * ne,
                * gt,
                * ge,
                * lt,
                * le,
                * and,
                * or,
                * not,
                * ()

            Supported functions:
                * substringof('value',fieldName),
                * endswith(fieldName,'value'),
                * startswith(fieldName,'value'),
                * tolower(fieldName),
                * toupper(fieldName)
                        
            Examples:

            * _filter=`firstname eq 'Jeffrey'`

            * _filter=`id eq guid'a14c149a-2ce0-41d4-b532-02189ad3cb22'`

            * _filter=`startsWith(lastname,'leb') or dateAdded ge
            datetime'1998-03-06T20:38:07Z'`
          x-nullable: true
        - type: string
          name: _sort
          in: query
          description: >-
            Optional list of comma-separated fields to sort the collection by.


            The referenced fields must allow sorting. See the respective
            report's schema for which fields can be sorted. 

            If not specified, all report fields are returned.


            To sort in a descending manner, prefix the field name with `-`. For
            example, 

            `_sort=name,-date`, sorts the collection of items by `name`
            (ascending) 

            and then by `date` (descending).
          x-nullable: true
        - type: string
          name: _limit
          in: query
          description: >-
            The maximum number of items to return in the current page of the
            collection.
          x-nullable: true
        - type: string
          name: _offset
          in: query
          description: The number of pages to offset into the collection.
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/UserCourseEnrollmentsResource'
        '404':
          x-nullable: false
          description: User not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '422':
          x-nullable: false
          description: A validation error occured with the provided parameters.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /enrollments/unenroll:
    post:
      tags:
        - Enrollments
      summary: Un-enroll users from courses.
      description: For types Online Course, ILC, Curriculum or Course Bundle.
      operationId: Enrollments_Unenroll
      parameters:
        - name: enrollmentIds
          in: body
          description: The Ids of the enrollments to unenroll users from courses.
          schema:
            type: array
            items:
              type: string
              format: guid
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          description: ''
        '400':
          x-nullable: false
          description: At least 1 enrollment ID required.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '422':
          x-nullable: false
          description: A validation error occured with the provided parameters.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /enrollments/{id}:
    get:
      tags:
        - Enrollments
      summary: Get course enrollment.
      operationId: Enrollments_GetCourseEnrollmentById
      parameters:
        - type: string
          name: id
          in: path
          required: true
          description: The course enrollment ID.
          format: guid
          x-nullable: false
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/NonPagedUserCourseEnrollmentResource'
        '404':
          x-nullable: false
          description: Enrollment not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /courses/{courseId}/enrollments:
    get:
      tags:
        - Enrollments
      summary: List enrollments for specific course.
      description: Supports pagination, filtering, and sorting.
      operationId: Enrollments_GetCourseEnrollments
      parameters:
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: modifiedSince
          in: query
          description: >-
            *(Deprecated)* The specified date for filtering enrollments that
            were edited after this date.
          format: date-time
          x-nullable: true
        - type: integer
          name: status
          in: query
          description: >-
            *(Deprecated)* The specified status to filter by.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: limit
          in: query
          description: >-
            *(Deprecated)* The maximum number of items to return in the current
            page of the collection.
          x-nullable: true
        - type: string
          name: offset
          in: query
          description: '*(Deprecated)* The number of pages to offset into the collection.'
          x-nullable: true
        - type: string
          name: _filter
          in: query
          description: >-
            One or more filter operations to be performed on the collection.

            The referenced fields must allow filtering. See the respective
            report's schema for which fields can be filtered. 
                        
            Supports most of the [OData filter
            syntax](http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_SystemQueryOptionfilter).
                        
            Supported operations:
                * eq,
                * ne,
                * gt,
                * ge,
                * lt,
                * le,
                * and,
                * or,
                * not,
                * ()

            Supported functions:
                * substringof('value',fieldName),
                * endswith(fieldName,'value'),
                * startswith(fieldName,'value'),
                * tolower(fieldName),
                * toupper(fieldName)
                        
            Examples:

            * _filter=`firstname eq 'Jeffrey'`

            * _filter=`id eq guid'a14c149a-2ce0-41d4-b532-02189ad3cb22'`

            * _filter=`startsWith(lastname,'leb') or dateAdded ge
            datetime'1998-03-06T20:38:07Z'`
          x-nullable: true
        - type: string
          name: _sort
          in: query
          description: >-
            Optional list of comma-separated fields to sort the collection by.


            The referenced fields must allow sorting. See the respective
            report's schema for which fields can be sorted. 

            If not specified, all report fields are returned.


            To sort in a descending manner, prefix the field name with `-`. For
            example, 

            `_sort=name,-date`, sorts the collection of items by `name`
            (ascending) 

            and then by `date` (descending).
          x-nullable: true
        - type: string
          name: _limit
          in: query
          description: >-
            The maximum number of items to return in the current page of the
            collection.
          x-nullable: true
        - type: string
          name: _offset
          in: query
          description: The number of pages to offset into the collection.
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/CourseEnrollmentsResource'
        '404':
          x-nullable: false
          description: Course not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '422':
          x-nullable: false
          description: A validation error occured with the provided parameters.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /users/{userId}/grades/{courseId}:
    get:
      tags:
        - Enrollments
      summary: Get user's enrollment for specific course.
      operationId: Enrollments_GetUserEnrollmentsByCourseId2
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The user's ID.
          format: guid
          x-nullable: false
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: integer
          name: status
          in: query
          description: >-
            The enrollment status.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: modifiedSince
          in: query
          description: The last modified date and time.
          format: date-time
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/NonPagedUserCourseEnrollmentResource'
        '404':
          x-nullable: false
          description: Course or user not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /bulk/student-courses:
    get:
      tags:
        - Enrollments
      summary: List course enrollments for bulk user list.
      operationId: Enrollments_GetCourseEnrollmentsByUserIdsBulk
      parameters:
        - type: array
          name: userIds
          in: query
          description: The user IDs.
          collectionFormat: multi
          x-nullable: true
          items:
            type: string
            format: guid
        - type: array
          name: courseIds
          in: query
          description: The course IDs.
          collectionFormat: multi
          x-nullable: true
          items:
            type: string
            format: guid
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            type: array
            items:
              $ref: '#/definitions/NonPagedUserCourseEnrollmentResource'
      security:
        - api_key: []
  /courses/{courseId}/lessons/{lessonId}/enrollments:
    get:
      tags:
        - Lesson Enrollments
      summary: Lists enrollments for a lesson.
      operationId: LessonEnrollments_GetCourseLessonEnrollments
      parameters:
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: lessonId
          in: path
          required: true
          description: The lesson ID.
          format: guid
          x-nullable: false
        - type: string
          name: modifiedSince
          in: query
          description: >-
            *(Deprecated)* The specified date for filtering enrollments that
            were edited after this date.
          format: date-time
          x-nullable: true
        - type: integer
          name: status
          in: query
          description: >-
            *(Deprecated)* The specified status to filter by.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: limit
          in: query
          description: >-
            *(Deprecated)* The maximum number of items to return in the current
            page of the collection.
          x-nullable: true
        - type: string
          name: offset
          in: query
          description: '*(Deprecated)* The number of pages to offset into the collection.'
          x-nullable: true
        - type: string
          name: _filter
          in: query
          description: >-
            One or more filter operations to be performed on the collection.

            The referenced fields must allow filtering. See the respective
            report's schema for which fields can be filtered. 
                        
            Supports most of the [OData filter
            syntax](http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_SystemQueryOptionfilter).
                        
            Supported operations:
                * eq,
                * ne,
                * gt,
                * ge,
                * lt,
                * le,
                * and,
                * or,
                * not,
                * ()

            Supported functions:
                * substringof('value',fieldName),
                * endswith(fieldName,'value'),
                * startswith(fieldName,'value'),
                * tolower(fieldName),
                * toupper(fieldName)
                        
            Examples:

            * _filter=`firstname eq 'Jeffrey'`

            * _filter=`id eq guid'a14c149a-2ce0-41d4-b532-02189ad3cb22'`

            * _filter=`startsWith(lastname,'leb') or dateAdded ge
            datetime'1998-03-06T20:38:07Z'`
          x-nullable: true
        - type: string
          name: _sort
          in: query
          description: >-
            Optional list of comma-separated fields to sort the collection by.


            The referenced fields must allow sorting. See the respective
            report's schema for which fields can be sorted. 

            If not specified, all report fields are returned.


            To sort in a descending manner, prefix the field name with `-`. For
            example, 

            `_sort=name,-date`, sorts the collection of items by `name`
            (ascending) 

            and then by `date` (descending).
          x-nullable: true
        - type: string
          name: _limit
          in: query
          description: >-
            The maximum number of items to return in the current page of the
            collection.
          x-nullable: true
        - type: string
          name: _offset
          in: query
          description: The number of pages to offset into the collection.
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/LessonEnrollmentsResource'
        '404':
          x-nullable: false
          description: Course or lesson not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '422':
          x-nullable: false
          description: A validation error occured with the provided parameters.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /users/{userId}/enrollments/{courseId}/chapters/{chapterId}/lessons/{lessonId}:
    get:
      tags:
        - Lesson Enrollments
      summary: Get lesson enrollment.
      operationId: LessonEnrollments_GetLessonByUserAndCourseAndChapterAndLessonId
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The user ID.
          format: guid
          x-nullable: false
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: chapterId
          in: path
          required: true
          description: The chapter ID.
          format: guid
          x-nullable: false
        - type: string
          name: lessonId
          in: path
          required: true
          description: The lesson ID.
          format: guid
          x-nullable: false
        - type: integer
          name: status
          in: query
          description: >-
            The enrollment status.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: modifiedSince
          in: query
          description: The last modified date and time.
          format: date-time
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/NonPagedLessonEnrollmentResource'
        '404':
          x-nullable: false
          description: User, course, chapter, or lesson not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /users/{userId}/enrollments/{courseId}/lessons:
    get:
      tags:
        - Lesson Enrollments
      summary: List user's lesson enrollments from specific course.
      operationId: LessonEnrollments_GetUserEnrollmentLessonsForCourse
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The user ID.
          format: guid
          x-nullable: false
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: integer
          name: status
          in: query
          description: >-
            The enrollment status.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: modifiedSince
          in: query
          description: The last modified date and time.
          format: date-time
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            type: array
            items:
              $ref: '#/definitions/NonPagedLessonEnrollmentResource'
        '404':
          x-nullable: false
          description: User or course not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /users/{userId}/enrollments/{courseId}/lessons/{lessonId}:
    get:
      tags:
        - Lesson Enrollments
      summary: Get user's lesson enrollment.
      operationId: LessonEnrollments_GetUserEnrollmentLessonById
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The user ID.
          format: guid
          x-nullable: false
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: lessonId
          in: path
          required: true
          description: The lesson ID.
          format: guid
          x-nullable: false
        - type: integer
          name: status
          in: query
          description: >-
            The enrollment status.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: modifiedSince
          in: query
          description: The last modified date and time.
          format: date-time
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/NonPagedLessonEnrollmentResource'
        '404':
          x-nullable: false
          description: User, course, or lesson not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /users/{userId}/enrollments/{courseId}/chapters/{chapterId}/lessons:
    get:
      tags:
        - Lesson Enrollments
      summary: List user's lesson enrollments from specific chapter.
      operationId: LessonEnrollments_GetLessonsByUserEnrollmentChapterId
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The user ID.
          format: guid
          x-nullable: false
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: chapterId
          in: path
          required: true
          description: The chapter ID.
          format: guid
          x-nullable: false
        - type: integer
          name: status
          in: query
          description: >-
            The enrollment status.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: modifiedSince
          in: query
          description: The last modified date and time.
          format: date-time
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            type: array
            items:
              $ref: '#/definitions/NonPagedLessonEnrollmentResource'
        '404':
          x-nullable: false
          description: User, course, or chapter not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /users/{userId}/enrollments/{courseId}/lessons/{lessonId}/attempts:
    get:
      tags:
        - Attempts
      summary: List user's attempts for specific lesson.
      operationId: Attempts_GetAttemptsByUserCourseLessonIds
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: lessonId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            type: array
            items:
              $ref: '#/definitions/AttemptResource'
        '404':
          x-nullable: false
          description: User, course, or lesson not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /users/{userId}/enrollments/{courseId}/lessons/{lessonId}/start-attempt:
    post:
      tags:
        - Attempts
      summary: Start attempt for active lesson enrollment.
      operationId: Attempts_StartAttempt
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: lessonId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/StartAttemptResource'
        '404':
          x-nullable: false
          description: User, course, or lesson not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '422':
          x-nullable: false
          description: A validation error occured with the provided parameters.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /attempts/{attemptId}/finish:
    post:
      tags:
        - Attempts
      summary: Finish attempt.
      operationId: Attempts_FinishAttempt
      parameters:
        - type: string
          name: attemptId
          in: path
          required: true
          description: The attempt ID.
          format: guid
          x-nullable: false
        - name: requestBody
          in: body
          description: The request body to finish an attempt.
          schema:
            $ref: '#/definitions/FinishAttemptRequestBody'
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/FinishAttemptResource'
        '404':
          x-nullable: false
          description: Attempt not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '422':
          x-nullable: false
          description: A validation error occured with the provided parameters.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /users/{userId}/enrollments/{courseId}/lessons/{lessonId}/attempts/{attemptId}/finish:
    post:
      tags:
        - Attempts
      summary: Finish attempt.
      description: Finish a specific user's lesson attempt.
      operationId: Attempts_FinishAttemptByUserCourseLessonIds
      parameters:
        - type: string
          name: userId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: lessonId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: attemptId
          in: path
          required: true
          description: The attempt ID.
          format: guid
          x-nullable: false
        - name: requestBody
          in: body
          description: The request body to finish a specific user's lesson attempt.
          schema:
            $ref: '#/definitions/FinishAttemptRequestBody'
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/FinishAttemptResource'
        '404':
          x-nullable: false
          description: User, course, lesson, or atempt not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /my-enrollments:
    get:
      tags:
        - My Enrollments
      summary: List currently authenticated user's course enrollments.
      operationId: MyEnrollments_GetMyCourseEnrollments
      parameters:
        - type: integer
          name: status
          in: query
          description: >-
            The specified status to filter by.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: modifiedSince
          in: query
          description: >-
            The specified date for filtering enrollments that were edited after
            this date.
          format: date-time
          x-nullable: true
        - type: string
          name: _filter
          in: query
          description: >-
            One or more filter operations to be performed on the collection.

            The referenced fields must allow filtering. See the respective
            report's schema for which fields can be filtered. 
                        
            Supports most of the [OData filter
            syntax](http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_SystemQueryOptionfilter).
                        
            Supported operations:
                * eq,
                * ne,
                * gt,
                * ge,
                * lt,
                * le,
                * and,
                * or,
                * not,
                * ()

            Supported functions:
                * substringof('value',fieldName),
                * endswith(fieldName,'value'),
                * startswith(fieldName,'value'),
                * tolower(fieldName),
                * toupper(fieldName)
                        
            Examples:

            * _filter=`firstname eq 'Jeffrey'`

            * _filter=`id eq guid'a14c149a-2ce0-41d4-b532-02189ad3cb22'`

            * _filter=`startsWith(lastname,'leb') or dateAdded ge
            datetime'1998-03-06T20:38:07Z'`
          x-nullable: true
        - type: string
          name: _sort
          in: query
          description: >-
            Optional list of comma-separated fields to sort the collection by.


            The referenced fields must allow sorting. See the respective
            report's schema for which fields can be sorted. 

            If not specified, all report fields are returned.


            To sort in a descending manner, prefix the field name with `-`. For
            example, 

            `_sort=name,-date`, sorts the collection of items by `name`
            (ascending) 

            and then by `date` (descending).
          x-nullable: true
        - type: string
          name: _limit
          in: query
          description: >-
            The maximum number of items to return in the current page of the
            collection.
          x-nullable: true
        - type: string
          name: _offset
          in: query
          description: The number of pages to offset into the collection.
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            type: array
            items:
              $ref: '#/definitions/UserCourseEnrollmentResource'
        '404':
          x-nullable: false
          description: User not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '422':
          x-nullable: false
          description: A validation error occured with the provided parameters.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /my-enrollments/{courseId}:
    get:
      tags:
        - My Enrollments
      summary: Get currently authenticated user's course enrollment.
      operationId: MyEnrollments_GetMyCourseEnrollment
      parameters:
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: integer
          name: status
          in: query
          description: >-
            The specified status to filter by.


            Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
            PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
            Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
            Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
            ReadyForReview` 
          x-schema:
            $ref: '#/definitions/EnrollmentStatus'
          x-nullable: true
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          name: modifiedSince
          in: query
          description: >-
            The specified date for filtering enrollments that were edited after
            this date.
          format: date-time
          x-nullable: true
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/NonPagedUserCourseEnrollmentResource'
        '404':
          x-nullable: false
          description: User or course not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
  /enroll/{courseId}:
    post:
      tags:
        - My Enrollments
      summary: Create course enrollment for the currently authenticated user.
      description: Multi-Session ILCs are not supported.
      operationId: MyEnrollments_Enroll
      parameters:
        - type: string
          name: courseId
          in: path
          required: true
          description: The course ID.
          format: guid
          x-nullable: false
        - type: string
          name: x-api-key
          in: header
        - type: string
          name: x-api-version
          in: header
          description: '1'
      responses:
        '201':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/EnrollUserEnrollmentResource'
        '400':
          x-nullable: false
          description: >-
            Unable to enroll user in course with provided information or ILC has
            multi-session enrollments.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '404':
          x-nullable: false
          description: User or course not found.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
        '422':
          x-nullable: false
          description: A validation error occured with the provided parameters.
          schema:
            $ref: '#/definitions/GenericErrorResponse'
      security:
        - api_key: []
definitions:
  NonPagedSessionEnrollmentResource:
    type: object
    description: >-
      This class is NOT to be used as an actual response. This is to be used as
      the `SwaggerResponse` return type for

      non-paginated endpoints that return SessionEnrollmentResource.
    properties:
      id:
        type: string
        description: The unique activity enrollment identifier.
        format: guid
      sessionId:
        type: string
        description: The session ID.
        format: guid
      courseEnrollmentId:
        type: string
        description: The course enrollment ID.
        format: guid
      name:
        type: string
        description: The activity's name.
      userId:
        type: string
        description: The user's ID.
        format: guid
      fullName:
        type: string
        description: The user's full name.
      status:
        description: >-
          The enrollment's status.


          Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
          PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
          Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
          Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
          ReadyForReview` 
        allOf:
          - $ref: '#/definitions/EnrollmentStatus'
      progress:
        type: number
        description: The user's progress.
        format: decimal
      score:
        type: number
        description: The user's score.
        format: decimal
      timeSpent:
        type: string
        description: The amount of time the user has spent on the activity.
        format: duration
      dateEnrolled:
        type: string
        description: The date of enrollment.
        format: date-time
      dateStarted:
        type: string
        description: The activity's date started.
        format: date-time
      dateCompleted:
        type: string
        description: The activity's date completed.
        format: date-time
      dateEdited:
        type: string
        description: The date the enrollment was last edited.
        format: date-time
  EnrollmentStatus:
    type: integer
    description: This is enum is used by all Enrollment types.
    x-enumNames:
      - NotStarted
      - InProgress
      - PendingApproval
      - Complete
      - NotComplete
      - Failed
      - Declined
      - PendingEvaluationRequired
      - OnWaitlist
      - Absent
      - NotApplicable
      - PendingProctor
      - ReadyForReview
    enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      - 9
      - 10
      - 11
      - 12
  Link:
    type: object
    properties:
      Rel:
        $ref: '#/definitions/Relation'
      Items:
        type: array
        items:
          $ref: '#/definitions/LinkItem'
  Relation:
    type: object
    properties:
      Name:
        type: string
  LinkItem:
    type: object
    properties:
      Href:
        type: string
      Name:
        type: string
      Templated:
        type: boolean
      Type:
        type: string
      Deprecation:
        type: string
      Profile:
        type: string
      Title:
        type: string
      Hreflang:
        type: string
  IEmbeddedResource:
    type: object
    x-abstract: true
    properties:
      Name:
        type: string
      Resources:
        type: array
        items:
          $ref: '#/definitions/IResource'
  IResource:
    type: object
    x-abstract: true
    properties:
      Links:
        type: array
        items:
          $ref: '#/definitions/Link'
      EmbeddedResources:
        type: array
        items:
          $ref: '#/definitions/IEmbeddedResource'
  GenericErrorResponse:
    type: object
    description: |-
      This class is NOT to be used as an actual response. This is to be used as
      the return type for non-200 responses in `SwaggerResponse` attributes.
    properties:
      validations:
        type: array
        description: The validations (if any) which caused the error.
        items:
          type: string
      code:
        description: The status code returned.
        allOf:
          - $ref: '#/definitions/HttpStatusCode'
      message:
        type: string
        description: The error message.
      term:
        type: string
        description: The general error term.
      _meta:
        type: object
        description: 'A list of meta data (if any). '
        additionalProperties:
          type: string
  HttpStatusCode:
    type: integer
    description: ''
    x-enumNames:
      - Continue
      - SwitchingProtocols
      - OK
      - Created
      - Accepted
      - NonAuthoritativeInformation
      - NoContent
      - ResetContent
      - PartialContent
      - MultipleChoices
      - Ambiguous
      - MovedPermanently
      - Moved
      - Found
      - Redirect
      - SeeOther
      - RedirectMethod
      - NotModified
      - UseProxy
      - Unused
      - TemporaryRedirect
      - RedirectKeepVerb
      - BadRequest
      - Unauthorized
      - PaymentRequired
      - Forbidden
      - NotFound
      - MethodNotAllowed
      - NotAcceptable
      - ProxyAuthenticationRequired
      - RequestTimeout
      - Conflict
      - Gone
      - LengthRequired
      - PreconditionFailed
      - RequestEntityTooLarge
      - RequestUriTooLong
      - UnsupportedMediaType
      - RequestedRangeNotSatisfiable
      - ExpectationFailed
      - UpgradeRequired
      - InternalServerError
      - NotImplemented
      - BadGateway
      - ServiceUnavailable
      - GatewayTimeout
      - HttpVersionNotSupported
  SessionEnrollmentResource:
    type: object
    description: Represents information about a session enrollment in the Integration API.
    properties:
      id:
        type: string
        description: The unique activity enrollment identifier.
        format: guid
      sessionId:
        type: string
        description: The session ID.
        format: guid
      courseEnrollmentId:
        type: string
        description: |-
          `Filterable` 

          The course enrollment ID.
        format: guid
      name:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The activity's name.
      userId:
        type: string
        description: |-
          `Filterable` 

          The user's ID.
        format: guid
      fullName:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The user's full name.
      status:
        description: >-
          `Sortable` `Filterable` 


          The enrollment's status.


          Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
          PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
          Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
          Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
          ReadyForReview` 
        allOf:
          - $ref: '#/definitions/EnrollmentStatus'
      progress:
        type: number
        description: |-
          `Sortable` `Filterable` 

          The user's progress.
        format: decimal
      score:
        type: number
        description: |-
          `Sortable` `Filterable` 

          The user's score.
        format: decimal
      timeSpent:
        type: string
        description: The amount of time the user has spent on the activity.
        format: duration
      dateEnrolled:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The date of enrollment.
        format: date-time
      dateStarted:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The activity's date started.
        format: date-time
      dateCompleted:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The activity's date completed.
        format: date-time
      dateEdited:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The date the enrollment was last edited.
        format: date-time
  PostSessionEnrollmentResource:
    type: object
    description: >-
      Represents information following a successful enrollment into an ILC +
      Session.
    properties:
      userId:
        type: string
        description: The user ID.
        format: guid
      courseId:
        type: string
        description: The instructor led course ID.
        format: guid
      sessionId:
        type: string
        description: The session ID.
        format: guid
      enrollmentId:
        type: string
        description: The instructor led course enrollment ID.
        format: guid
      sessionEnrollmentId:
        type: string
        description: The session enrollment ID.
        format: guid
  ChapterEnrollmentResource:
    type: object
    description: Represents information about Chapter Enrollments in the Integration API.
    properties:
      id:
        type: string
        description: The unique identifier of the activity enrollment.
        format: guid
      courseEnrollmentId:
        type: string
        description: The course enrollment ID.
        format: guid
      chapterId:
        type: string
        description: The chapter ID.
        format: guid
      sessionId:
        type: string
        description: The session ID.
        format: guid
      lessonId:
        type: string
        description: The lesson ID.
        format: guid
      name:
        type: string
        description: The name of the activity.
      userId:
        type: string
        description: The user's ID.
        format: guid
      fullName:
        type: string
        description: The user's full name.
      status:
        description: >-
          The status of the enrollment.


          Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
          PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
          Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
          Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
          ReadyForReview` 
        allOf:
          - $ref: '#/definitions/EnrollmentStatus'
      progress:
        type: number
        description: The user's progress.
        format: decimal
      score:
        type: number
        description: The user's score.
        format: decimal
      timeSpent:
        type: string
        description: TimeSpentTicks represented as a TimeSpan.
        format: duration
      dateEnrolled:
        type: string
        description: The date of enrollment.
        format: date-time
      dateStarted:
        type: string
        description: The date started.
        format: date-time
      dateCompleted:
        type: string
        description: The date completed.
        format: date-time
      lessonEnrollmentIds:
        type: array
        description: A list of lesson enrollment IDs.
        items:
          type: string
          format: guid
  EnrollUserEnrollmentResource:
    type: object
    description: >-
      Resource returned by the EnrollmentsController for various POST operations
      that enroll a user in a course.
    properties:
      enrollmentId:
        type: string
        description: The enrollment ID.
        format: guid
      courseId:
        type: string
        description: the course ID.
        format: guid
      userId:
        type: string
        description: The user ID.
        format: guid
  EnrollUserInCourseRequestBody:
    type: object
    description: >-
      Request Model received in the body that represents information about a
      learner's enrollment in a course.
    required:
      - courseId
    properties:
      id:
        type: string
        description: Enrollment identifier.
        format: guid
      courseId:
        type: string
        description: Course identifier.
        format: guid
        minLength: 1
      courseName:
        type: string
        description: Name of the course.
      progress:
        type: number
        description: Percentage of course completed.
        format: decimal
      score:
        type: number
        description: Score in percentage.
        format: decimal
      status:
        description: >-
          The enrollment status.


          Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
          PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
          Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
          Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
          ReadyForReview` 
        allOf:
          - $ref: '#/definitions/EnrollmentStatus'
      dateCompleted:
        type: string
        description: The date the enrollment was completed.
        format: date-time
      dateExpires:
        type: string
        description: The date the enrollment expires.
        format: date-time
      fullName:
        type: string
        description: Learner's full name.
      jobTitle:
        type: string
        description: Learner's job title.
      courseVersionId:
        type: string
        description: Enrollment is for a specific course version.
        format: guid
      userId:
        type: string
        description: Learner identifier.
        format: guid
      acceptedTermsAndConditions:
        type: boolean
        description: Learner has accepted the terms and conditions.
      dateStarted:
        type: string
        description: The date the learner started the course.
        format: date-time
      enrollmentKeyId:
        type: string
        description: >-
          When present, indicates the enrollment key used to enroll into the
          course.
        format: guid
      certificateId:
        type: string
        description: >-
          When present, indicates the id of the certificate awarded for
          completing the course.
        format: guid
      credits:
        type: number
        description: When present, indicates the credits accumulated for the course.
        format: decimal
      isActive:
        type: boolean
        description: >-
          If true, indicates the enrollment is the current (active) enrollment.
          false if a historical enrollment.
      courseCollectionId:
        type: string
        description: >-
          This is set if the Course is an Online Course or a Instructor Led
          Course that was enrolled in via a Course Bundle or Curriculum.

          This refers back to the CourseBundle's ID or Curriculum's ID.
        format: guid
      accessDate:
        type: string
        description: >-
          Course cannot be started until this date. Does not stop users from
          enrolling in it, though.
        format: date-time
      dateDue:
        type: string
        description: The date the learner must complete the course by.
        format: date-time
      avatar:
        type: string
        description: The display path of a User's Avatar.
      creditTypeCredits:
        type: array
        description: The credits awarded by credit type.
        items:
          $ref: '#/definitions/CourseEnrollmentCreditsModel'
  CourseEnrollmentCreditsModel:
    type: object
    required:
      - creditTypeId
      - credits
    properties:
      creditTypeId:
        type: string
        format: guid
      credits:
        type: number
        format: decimal
  NonPagedUserCourseEnrollmentResource:
    type: object
    description: >-
      This class is NOT to be used as an actual response. This is to be used as
      the `SwaggerResponse` return type for

      non-paginated endpoints that return UserCourseEnrollmentResource.
    properties:
      id:
        type: string
        description: Enrollment identifier.
        format: guid
      courseId:
        type: string
        description: Course identifier.
        format: guid
      courseName:
        type: string
        description: Name of the course.
      progress:
        type: number
        description: Percentage of course completed.
        format: decimal
      score:
        type: number
        description: Score in percentage.
        format: decimal
      status:
        description: >-
          The enrollment status.


          Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
          PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
          Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
          Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
          ReadyForReview` 
        allOf:
          - $ref: '#/definitions/EnrollmentStatus'
      dateCompleted:
        type: string
        description: The date the enrollment was completed.
        format: date-time
      dateExpires:
        type: string
        description: The date the enrollment expires.
        format: date-time
      dateEdited:
        type: string
        description: The date enrollment was last edited.
        format: date-time
      dateAdded:
        type: string
        description: The date the enrollment was added.
        format: date-time
      fullName:
        type: string
        description: Learner's full name.
      courseVersionId:
        type: string
        description: Enrollment is for a specific course version.
        format: guid
      userId:
        type: string
        description: Learner identifier.
        format: guid
      acceptedTermsAndConditions:
        type: boolean
        description: Learner has accepted the terms and conditions.
      timeSpentTicks:
        type: integer
        description: >-
          The length of time the learner has spent in the course (stored as
          ticks).
        format: int64
      timeSpent:
        type: string
        description: The length of time the learner has spent in the course.
        format: duration
      dateStarted:
        type: string
        description: The date the learner started the course.
        format: date-time
      enrollmentKeyId:
        type: string
        description: >-
          When present, indicates the enrollment key used to enroll into the
          course.
        format: guid
      certificateId:
        type: string
        description: >-
          When present, indicates the id of the certificate awarded for
          completing the course.
        format: guid
      credits:
        type: number
        description: When present, indicates the credits accumulated for the course.
        format: decimal
      isActive:
        type: boolean
        description: >-
          Indicates if the enrollment is the current (active) enrollment or a
          historical enrollment.
      dateDue:
        type: string
        description: The date enrollment is due.
        format: date-time
      accessDate:
        type: string
        description: >-
          Course cannot be started until this date. Does not stop users from
          enrolling in it, though.
        format: date-time
      jobTitle:
        type: string
        description: Learner's job title.
      courseCollectionId:
        type: string
        description: >-
          This is set if the Course is an Online Course or a Instructor Led
          Course that was enrolled in via a Course Bundle or Curriculum.

          This refers back to the CourseBundle's Id or Curriculum's Id.
        format: guid
      avatar:
        type: string
        description: The display path of a User's Avatar.
  UserCourseEnrollmentsResource:
    type: object
    description: Represents a collection of UserCourseEnrollmentResource.
    properties:
      totalItems:
        type: integer
        description: The total number of items in the unbounded collection
        format: int32
      returnedItems:
        type: integer
        description: The number of items in the bound collection being returned
        format: int32
      limit:
        type: integer
        description: The current page size for the collection
        format: int32
      offset:
        type: integer
        description: The current offset for the collection
        format: int32
      enrollments:
        type: array
        items:
          $ref: '#/definitions/UserCourseEnrollmentResource'
  UserCourseEnrollmentResource:
    type: object
    description: >-
      Represents information about a course enrollment for an Integration API
      endpoint.
    properties:
      id:
        type: string
        description: |-
          `Filterable` 

          Enrollment identifier.
        format: guid
      courseId:
        type: string
        description: |-
          `Filterable` 

          Course identifier.
        format: guid
      courseName:
        type: string
        description: |-
          `Default Sort` `Sortable` `Filterable` 

          Name of the course.
      progress:
        type: number
        description: |-
          `Sortable` `Filterable` 

          Percentage of course completed.
        format: decimal
      score:
        type: number
        description: |-
          `Sortable` `Filterable` 

          Score in percentage.
        format: decimal
      status:
        description: >-
          `Sortable` `Filterable` 


          The enrollment status.


          Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
          PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
          Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
          Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
          ReadyForReview` 
        allOf:
          - $ref: '#/definitions/EnrollmentStatus'
      dateCompleted:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The date the enrollment was completed.
        format: date-time
      dateExpires:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The date the enrollment expires.
        format: date-time
      dateEdited:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The date enrollment was last edited.
        format: date-time
      dateAdded:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The date the enrollment was added.
        format: date-time
      fullName:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Learner's full name.
      courseVersionId:
        type: string
        description: |-
          `Filterable` 

          Enrollment is for a specific course version.
        format: guid
      userId:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Learner identifier.
        format: guid
      acceptedTermsAndConditions:
        type: boolean
        description: |-
          `Sortable` `Filterable` 

          Learner has accepted the terms and conditions.
      timeSpentTicks:
        type: integer
        description: >-
          `Sortable` `Filterable` 


          The length of time the learner has spent in the course (stored as
          ticks).
        format: int64
      timeSpent:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The length of time the learner has spent in the course.
        format: duration
      dateStarted:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The date the learner started the course.
        format: date-time
      enrollmentKeyId:
        type: string
        description: >-
          `Filterable` 


          When present, indicates the enrollment key used to enroll into the
          course.
        format: guid
      certificateId:
        type: string
        description: >-
          `Filterable` 


          When present, indicates the id of the certificate awarded for
          completing the course.
        format: guid
      credits:
        type: number
        description: |-
          `Sortable` `Filterable` 

          When present, indicates the credits accumulated for the course.
        format: decimal
      isActive:
        type: boolean
        description: >-
          `Sortable` `Filterable` 


          Indicates if the enrollment is the current (active) enrollment or a
          historical enrollment.
      dateDue:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The date enrollment is due.
        format: date-time
      accessDate:
        type: string
        description: >-
          `Sortable` `Filterable` 


          Course cannot be started until this date. Does not stop users from
          enrolling in it, though.
        format: date-time
      jobTitle:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Learner's job title.
      courseCollectionId:
        type: string
        description: >-
          `Filterable` 


          This is set if the Course is an Online Course or a Instructor Led
          Course that was enrolled in via a Course Bundle or Curriculum.

          This refers back to the CourseBundle's Id or Curriculum's Id.
        format: guid
      avatar:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The display path of a User's Avatar.
  CourseEnrollmentsResource:
    type: object
    description: Represents a collection of CourseEnrollmentResource objects.
    properties:
      totalItems:
        type: integer
        description: The total number of items in the unbounded collection
        format: int32
      returnedItems:
        type: integer
        description: The number of items in the bound collection being returned
        format: int32
      limit:
        type: integer
        description: The current page size for the collection
        format: int32
      offset:
        type: integer
        description: The current offset for the collection
        format: int32
      enrollments:
        type: array
        items:
          $ref: '#/definitions/CourseEnrollmentResource'
  CourseEnrollmentResource:
    type: object
    description: Represents information about a course enrollment.
    properties:
      id:
        type: string
        description: |-
          `Filterable` 

          Enrollment identifier.
        format: guid
      courseId:
        type: string
        description: |-
          `Filterable` 

          Course identifier.
        format: guid
      courseName:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Name of the course.
      progress:
        type: number
        description: |-
          `Sortable` `Filterable` 

          Percentage of course completed.
        format: decimal
      score:
        type: number
        description: |-
          `Sortable` `Filterable` 

          Score in percentage.
        format: decimal
      status:
        description: >-
          `Sortable` `Filterable` 


          The enrollment status.


          Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
          PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
          Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
          Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
          ReadyForReview` 
        allOf:
          - $ref: '#/definitions/EnrollmentStatus'
      dateCompleted:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The date the enrollment was completed.
        format: date-time
      dateExpires:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The date the enrollment expires.
        format: date-time
      fullName:
        type: string
        description: |-
          `Default Sort` `Sortable` `Filterable` 

          Learner's full name.
      jobTitle:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Learner's job title.
      courseVersionId:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Enrollment is for a specific course version.
        format: guid
      userId:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Learner identifier.
        format: guid
      acceptedTermsAndConditions:
        type: boolean
        description: |-
          `Sortable` `Filterable` 

          Learner has accepted the terms and conditions.
      timeSpent:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The length of time the learner has spent in the course.
        format: duration
      dateStarted:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The date the learner started the course.
        format: date-time
      enrollmentKeyId:
        type: string
        description: >-
          `Sortable` `Filterable` 


          When present, indicates the enrollment key used to enroll into the
          course.
        format: guid
      certificateId:
        type: string
        description: >-
          `Sortable` `Filterable` 


          When present, indicates the ID of the certificate awarded for
          completing the course.
        format: guid
      credits:
        type: number
        description: |-
          `Sortable` `Filterable` 

          When present, indicates the credits accumulated for the course.
        format: decimal
      isActive:
        type: boolean
        description: >-
          `Sortable` `Filterable` 


          Indicates if the enrollment is the current (active) enrollment or a
          historical enrollment.
      dateDue:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The date enrollment is due.
        format: date-time
      dateEdited:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The date enrollment was last edited.
        format: date-time
      dateAdded:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The date the enrollment was added.
        format: date-time
  LessonEnrollmentsResource:
    type: object
    description: List of LessonEnrollmentResources.
    properties:
      totalItems:
        type: integer
        description: The total number of items in the unbounded collection
        format: int32
      returnedItems:
        type: integer
        description: The number of items in the bound collection being returned
        format: int32
      limit:
        type: integer
        description: The current page size for the collection
        format: int32
      offset:
        type: integer
        description: The current offset for the collection
        format: int32
      lessonEnrollments:
        type: array
        description: A list of LessonEnrollmentResources.
        items:
          $ref: '#/definitions/LessonEnrollmentResource'
  LessonEnrollmentResource:
    type: object
    description: Resource for a Lesson Enrollment.
    properties:
      id:
        type: string
        description: |-
          `Filterable` 

          Enrollment identifier.
        format: guid
      chapterEnrollmentId:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The Id of related ChapterEnrollment
        format: guid
      type:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The type of ActivityEnrollment
      attempts:
        type: integer
        description: |-
          `Sortable` `Filterable` 

          Number of attempts
        format: int32
      failures:
        type: integer
        description: |-
          `Sortable` `Filterable` 

          Number of failures
        format: int32
      lastAttempt:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Date of the last attempt
        format: date-time
      courseEnrollmentId:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Id of the related CourseEnrollment
        format: guid
      chapterId:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Id of the related Chapter
        format: guid
      lessonId:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Id of the related Lesson
        format: guid
      name:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Name of the Lesson Enrollment
      userId:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Id of the related User
        format: guid
      fullName:
        type: string
        description: |-
          `Default Sort` `Sortable` `Filterable` 

          Full name of the related User
      status:
        description: >-
          `Sortable` `Filterable` 


          Status of the Enrollment


          Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
          PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
          Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
          Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
          ReadyForReview` 
        allOf:
          - $ref: '#/definitions/EnrollmentStatus'
      progress:
        type: number
        description: |-
          `Sortable` `Filterable` 

          Progress of this enrollment
        format: decimal
      score:
        type: number
        description: |-
          `Sortable` `Filterable` 

          Score of this enrollment
        format: decimal
      timeSpent:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The length of time the learner has spent in the course.
        format: duration
      dateEnrolled:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Date the User was enrolled
        format: date-time
      dateStarted:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Date the User started.
        format: date-time
      dateCompleted:
        type: string
        description: |-
          `Sortable` `Filterable` 

          Date the user completed.
        format: date-time
      dateEdited:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The last date edited.
        format: date-time
      dateAdded:
        type: string
        description: |-
          `Sortable` `Filterable` 

          The date the enrollment was added.
        format: date-time
  NonPagedLessonEnrollmentResource:
    type: object
    description: >-
      This class is NOT to be used as an actual response. This is to be used as
      the `SwaggerResponse` return type for

      non-paginated endpoints that return LessonEnrollmentResource.
    properties:
      id:
        type: string
        description: Enrollment identifier.
        format: guid
      chapterEnrollmentId:
        type: string
        description: The Id of related ChapterEnrollment
        format: guid
      type:
        type: string
        description: The type of ActivityEnrollment
      attempts:
        type: integer
        description: Number of attempts
        format: int32
      failures:
        type: integer
        description: Number of failures
        format: int32
      lastAttempt:
        type: string
        description: Date of the last attempt
        format: date-time
      courseEnrollmentId:
        type: string
        description: Id of the related CourseEnrollment
        format: guid
      chapterId:
        type: string
        description: Id of the related Chapter
        format: guid
      lessonId:
        type: string
        description: Id of the related Lesson
        format: guid
      name:
        type: string
        description: Name of the Lesson Enrollment
      userId:
        type: string
        description: Id of the related User
        format: guid
      fullName:
        type: string
        description: Full name of the related User
      status:
        description: >-
          Status of the Enrollment


          Possible Enum Values: `0 = NotStarted` `1 = InProgress` `2 =
          PendingApproval` `3 = Complete` `4 = NotComplete` `5 = Failed` `6 =
          Declined` `7 = PendingEvaluationRequired` `8 = OnWaitlist` `9 =
          Absent` `10 = NotApplicable` `11 = PendingProctor` `12 =
          ReadyForReview` 
        allOf:
          - $ref: '#/definitions/EnrollmentStatus'
      progress:
        type: number
        description: Progress of this enrollment
        format: decimal
      score:
        type: number
        description: Score of this enrollment
        format: decimal
      timeSpent:
        type: string
        description: The length of time the learner has spent in the course.
        format: duration
      dateEnrolled:
        type: string
        description: Date the User was enrolled
        format: date-time
      dateStarted:
        type: string
        description: Date the User started.
        format: date-time
      dateCompleted:
        type: string
        description: Date the user completed.
        format: date-time
      dateEdited:
        type: string
        description: The last date edited.
        format: date-time
      dateAdded:
        type: string
        description: The date the enrollment was added.
        format: date-time
  AttemptResource:
    type: object
    description: Represents information about an attempt in the Integration API.
    properties:
      id:
        type: string
        description: The unique attempt identifier.
        format: guid
      timeSpentTicks:
        type: integer
        description: The attempt's time spent in ticks.
        format: int64
      status:
        description: |-
          The attempt's status.

          Possible Enum Values: `1 = InProgress` `3 = Complete` `5 = Failed` 
        allOf:
          - $ref: '#/definitions/AttemptStatus'
      score:
        type: number
        description: The attempt's score.
        format: decimal
      startDate:
        type: string
        description: The attempt's start date.
        format: date-time
      completionDate:
        type: string
        description: 'The attempt''s completion date. '
        format: date-time
  AttemptStatus:
    type: integer
    description: Attempt status.
    x-enumNames:
      - InProgress
      - Complete
      - Failed
    enum:
      - 1
      - 3
      - 5
  StartAttemptResource:
    type: object
    description: Resource to be returned when an attempt is started.
    properties:
      attemptId:
        type: string
        description: The unique attempt identifier.
        format: guid
      courseId:
        type: string
        description: The attempt's course ID.
        format: guid
      userId:
        type: string
        description: The attempt's user ID.
        format: guid
  FinishAttemptResource:
    type: object
    description: Resource to be returned when an attempt is updated/finished.
    properties:
      attemptId:
        type: string
        description: The unique attempt identifier.
        format: guid
  FinishAttemptRequestBody:
    type: object
    description: The request body to finish an attempt.
    required:
      - status
    properties:
      status:
        description: |-
          The attempt's status.

          Possible Enum Values: `1 = InProgress` `3 = Complete` `5 = Failed` 
        allOf:
          - $ref: '#/definitions/AttemptStatus'
      score:
        type: number
        description: The attempt's score.
        format: decimal
      startDate:
        type: string
        description: The attempt's start date.
        format: date-time
      completionDate:
        type: string
        description: 'The attempt''s completion date. '
        format: date-time
securityDefinitions:
  api_key:
    type: apiKey
    name: x-api-key
    in: header
tags:
  - name: Session Enrollments
  - name: Chapter Enrollments
  - name: Enrollments
  - name: Lesson Enrollments
  - name: Attempts
  - name: My Enrollments
x-servers:
  - url: https://rest.myabsorb.com
    description: US
  - url: https://rest.myabsorb.ca
    description: CA
  - url: https://rest.myabsorb.eu
    description: EU
  - url: https://rest.myabsorb.com.au
    description: AU
