openapi: 3.0.1 info: title: iSpring Learn REST API version: 2.0.0 servers: - url: 'https://%HOST%' description: Main server tags: - name: department description: Department operations - name: group description: Group operations - name: enrollment description: Enrollment operations - name: user description: User operations - name: content description: Content operations - name: results description: User result data operations - name: gamification description: Gamification operations paths: /department: post: tags: - department summary: Add a new department parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/NewDepartment' application/json: schema: $ref: '#/components/schemas/NewDepartment' responses: '201': description: Successful operation content: application/xml: schema: type: string description: The department ID xml: name: response application/json: schema: type: string description: The department ID '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' get: tags: - department summary: Get department list parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' - name: code in: query required: false schema: type: string responses: '200': description: Successful operation content: application/xml: schema: type: array items: $ref: '#/components/schemas/Department' xml: wrapped: true name: response application/json: schema: type: array items: $ref: '#/components/schemas/Department' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /departments: get: tags: - department summary: List departments parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/pageSize' responses: '200': description: Successful operation content: application/xml: schema: $ref: '#/components/schemas/DepartmentsPage' application/json: schema: $ref: '#/components/schemas/DepartmentsPage' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' '/department/{department_id}': delete: tags: - department summary: Delete department parameters: - name: department_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '204': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' get: tags: - department summary: Get department info parameters: - name: department_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '200': description: Successful operation content: application/xml: schema: type: object properties: response: $ref: '#/components/schemas/Department' xml: name: response application/json: schema: $ref: '#/components/schemas/Department' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' post: tags: - department summary: Update department parameters: - name: department_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/UpdateDepartment' application/json: schema: $ref: '#/components/schemas/UpdateDepartment' responses: '204': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /role: get: tags: - user summary: Get role list parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '200': description: Successful operation content: application/xml: schema: type: array items: $ref: '#/components/schemas/Role' xml: wrapped: true name: response application/json: schema: type: array items: $ref: '#/components/schemas/Role' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /enrollment: post: tags: - enrollment summary: Create new enrollments parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/NewEnrollment' application/json: schema: $ref: '#/components/schemas/NewEnrollment' required: true responses: '201': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' get: tags: - enrollment summary: Get enrollment list parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' - name: 'courseIds[]' in: query required: false schema: type: array items: type: string format: uuid - name: 'learnerIds[]' in: query required: false schema: type: array items: type: string format: uuid responses: '200': description: Successful operation content: application/xml: schema: type: array items: $ref: '#/components/schemas/Enrollment' xml: wrapped: true name: response application/json: schema: type: array items: $ref: '#/components/schemas/Enrollment' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /enrollments: get: tags: - enrollment summary: List enrollments parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' - name: 'courseIds[]' in: query required: false schema: type: array items: type: string format: uuid - name: 'learnerIds[]' in: query required: false schema: type: array items: type: string format: uuid - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/pageSize' responses: '200': description: Successful operation content: application/xml: schema: $ref: '#/components/schemas/EnrollmentsPage' application/json: schema: $ref: '#/components/schemas/EnrollmentsPage' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /enrollment/delete: post: tags: - enrollment summary: Delete enrollments parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/DeleteEnrollments' application/json: schema: $ref: '#/components/schemas/DeleteEnrollments' required: true responses: '204': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' '/enrollment/{enrollment_id}': get: tags: - enrollment summary: Get enrollment details parameters: - name: enrollment_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '200': description: Successful operation content: application/xml: schema: type: object properties: response: $ref: '#/components/schemas/Enrollment' xml: name: response application/json: schema: $ref: '#/components/schemas/Enrollment' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' post: tags: - enrollment summary: Update enrollment parameters: - name: enrollment_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/UpdateEnrollment' application/json: schema: $ref: '#/components/schemas/UpdateEnrollment' required: true responses: '200': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' '/enrollment/{enrollment_id}/reenroll': post: tags: - enrollment summary: Reenroll learner parameters: - name: enrollment_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/Reenroll' application/json: schema: $ref: '#/components/schemas/Reenroll' required: true responses: '200': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /group: post: tags: - group summary: Add a new group parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/NewGroup' application/json: schema: $ref: '#/components/schemas/NewGroup' responses: '201': description: Successful operation content: application/xml: schema: type: string description: The group ID xml: name: response application/json: schema: type: string description: The group ID '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' get: tags: - group summary: Get group list parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '200': description: Successful operation content: application/xml: schema: type: array items: $ref: '#/components/schemas/Group' xml: wrapped: true name: response application/json: schema: type: array items: $ref: '#/components/schemas/Group' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /groups: get: tags: - group summary: List groups parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/pageSize' responses: '200': description: Successful operation content: application/xml: schema: $ref: '#/components/schemas/GroupsPage' application/json: schema: $ref: '#/components/schemas/GroupsPage' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /group/smart: post: tags: - group summary: Add a new smart group parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/NewSmartGroup' application/json: schema: $ref: '#/components/schemas/NewSmartGroup' responses: '201': description: Successful operation content: application/xml: schema: type: string description: The group ID xml: name: response application/json: schema: type: string description: The group ID '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' '/group/smart/{group_id}/rules': get: tags: - group summary: Get smart group rules parameters: - name: group_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '200': description: Successful operation content: application/xml: schema: type: object properties: smartGroupRules: $ref: '#/components/schemas/SmartGroupRules' xml: name: response application/json: schema: $ref: '#/components/schemas/SmartGroupRules' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' '/group/{group_id}': delete: tags: - group summary: Delete group parameters: - name: group_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '204': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' get: tags: - group summary: Get group details parameters: - name: group_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '200': description: Successful operation content: application/xml: schema: type: object properties: response: $ref: '#/components/schemas/DetailedGroup' xml: name: response application/json: schema: $ref: '#/components/schemas/DetailedGroup' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' post: tags: - group summary: Update group parameters: - name: group_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/UpdateGroup' application/json: schema: $ref: '#/components/schemas/UpdateGroup' responses: '200': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' '/group/{group_id}/members': post: tags: - group summary: Update group members parameters: - name: group_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/UpdateGroupMembers' application/json: schema: $ref: '#/components/schemas/UpdateGroupMembers' responses: '200': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' '/group/smart/{group_id}': post: tags: - group summary: Update smart group parameters: - name: group_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/UpdateSmartGroup' application/json: schema: $ref: '#/components/schemas/UpdateSmartGroup' responses: '200': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /user: post: tags: - user summary: Add a new user parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/NewUser' application/json: schema: $ref: '#/components/schemas/NewUser' required: true responses: '201': description: Successful operation content: application/xml: schema: type: string description: The user ID xml: name: response application/json: schema: type: string description: The user ID '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' get: tags: - user summary: Get user list parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' - name: 'groups[]' in: query required: false schema: type: array items: type: string format: uuid - name: 'departments[]' in: query required: false schema: type: array items: type: string format: uuid responses: '200': description: Successful operation content: application/xml: schema: type: array items: $ref: '#/components/schemas/User' xml: wrapped: true name: response application/json: schema: type: array items: $ref: '#/components/schemas/User' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /users: get: tags: - user summary: List users parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' - name: 'groups[]' in: query required: false schema: type: array items: type: string format: uuid - name: 'departments[]' in: query required: false schema: type: array items: type: string format: uuid - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/pageSize' responses: '200': description: Successful operation content: application/xml: schema: $ref: '#/components/schemas/UsersPage' application/json: schema: $ref: '#/components/schemas/UsersPage' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' '/user/{user_id}': delete: tags: - user summary: Delete user parameters: - name: user_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '204': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' get: tags: - user summary: Get user profile parameters: - name: user_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '200': description: Successful operation content: application/xml: schema: type: object properties: response: $ref: '#/components/schemas/User' xml: name: response application/json: schema: $ref: '#/components/schemas/User' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' post: tags: - user summary: Update user profile parameters: - name: user_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/UpdateUser' application/json: schema: $ref: '#/components/schemas/UpdateUser' required: true responses: '200': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' '/user/{user_id}/password': post: tags: - user summary: Update user password parameters: - name: user_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/UpdateUserPassword' application/json: schema: $ref: '#/components/schemas/UpdateUserPassword' required: true responses: '200': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' '/user/{user_id}/status': post: tags: - user summary: Activate/Deactivate user parameters: - name: user_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/UpdateUserStatus' application/json: schema: $ref: '#/components/schemas/UpdateUserStatus' required: true responses: '200': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' '/user/{user_id}/scheduled_deactivation': post: tags: - user summary: Schedule user deactivation parameters: - name: user_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/ScheduledUserDeactivation' application/json: schema: $ref: '#/components/schemas/ScheduledUserDeactivation' required: true responses: '200': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' delete: tags: - user summary: Delete scheduled deactivation date parameters: - name: user_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '204': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /user/profile/fields: get: tags: - user summary: Get user profile fields parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '200': description: Successful operation content: application/xml: schema: type: array items: $ref: '#/components/schemas/UserFieldInfo' xml: wrapped: true name: response application/json: schema: type: array items: $ref: '#/components/schemas/UserFieldInfo' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /gamification/points: get: tags: - gamification summary: Retrieves a list of users and their gamification points parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '200': description: Successful operation content: application/xml: schema: type: array items: $ref: '#/components/schemas/UserPointsInfo' xml: wrapped: true name: response application/json: schema: type: array items: $ref: '#/components/schemas/UserPointsInfo' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /gamification/points/award: post: tags: - gamification summary: Award points to user parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/AwardGamificationPoints' application/json: schema: $ref: '#/components/schemas/AwardGamificationPoints' responses: '200': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /gamification/points/withdraw: post: tags: - gamification summary: Withdraw points from user parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/WithdrawGamificationPoints' application/json: schema: $ref: '#/components/schemas/WithdrawGamificationPoints' responses: '200': description: Successful operation content: {} '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /content: get: tags: - content summary: Get content list parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '200': description: Successful operation content: application/xml: schema: type: array items: $ref: '#/components/schemas/ContentItemInformation' xml: wrapped: true name: response application/json: schema: type: array items: $ref: '#/components/schemas/ContentItemInformation' '400': $ref: '#/components/responses/StringBadRequest' '401': $ref: '#/components/responses/StringUnauthorized' '403': $ref: '#/components/responses/StringPermissionDenied' /contents: get: tags: - content summary: List content parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/pageSize' responses: '200': description: Successful operation content: application/xml: schema: $ref: '#/components/schemas/ContentItemsInformationPage' application/json: schema: $ref: '#/components/schemas/ContentItemsInformationPage' '400': $ref: '#/components/responses/StringBadRequest' '401': $ref: '#/components/responses/StringUnauthorized' '403': $ref: '#/components/responses/StringPermissionDenied' '/content/{content_id}': get: tags: - content summary: Get content item parameters: - name: content_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '200': description: Successful operation content: application/xml: schema: type: array items: $ref: '#/components/schemas/ContentItemInformation' xml: wrapped: true name: response application/json: schema: $ref: '#/components/schemas/ContentItemInformation' '400': $ref: '#/components/responses/StringBadRequest' '401': $ref: '#/components/responses/StringUnauthorized' '403': $ref: '#/components/responses/StringPermissionDenied' '404': description: Not Found content: text/plain: schema: type: string example: Unknown content item '/content/{content_id}/final_statuses': get: tags: - content summary: Get content item final statuses parameters: - name: content_id in: path required: true schema: type: string - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '200': description: Successful operation content: application/xml: schema: type: array items: $ref: '#/components/schemas/ContentItemFinalStatus' xml: wrapped: true name: response application/json: schema: type: array items: $ref: '#/components/schemas/ContentItemFinalStatus' '400': $ref: '#/components/responses/StringBadRequest' '401': $ref: '#/components/responses/StringUnauthorized' '403': $ref: '#/components/responses/StringPermissionDenied' '404': description: Not Found content: text/plain: schema: type: string example: Unknown content item /courses/modules: get: deprecated: true tags: - content summary: List courses modules parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/pageSize' - name: courseIds in: query schema: type: array items: type: string responses: '200': description: Successful operation content: application/xml: schema: $ref: '#/components/schemas/CoursesModulesPage' application/json: schema: $ref: '#/components/schemas/CoursesModulesPage' '400': $ref: '#/components/responses/StringBadRequest' '401': $ref: '#/components/responses/StringUnauthorized' '403': $ref: '#/components/responses/StringPermissionDenied' /course/{course_id}/modules: get: tags: - content summary: List courses modules parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/pageSize' - name: course_id in: path required: true schema: type: string responses: '200': description: Successful operation content: application/xml: schema: $ref: '#/components/schemas/CourseModulesPage' application/json: schema: $ref: '#/components/schemas/CourseModulesPage' '400': $ref: '#/components/responses/StringBadRequest' '401': $ref: '#/components/responses/StringUnauthorized' '403': $ref: '#/components/responses/StringPermissionDenied' /learners/results: get: tags: - results summary: >- Retrieves a paginated list of results for specific learners in specific courses parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/pageSize' - name: userIds in: query required: false schema: type: array items: type: string - name: courseIds in: query required: false schema: type: array items: type: string - name: departmentIds in: query required: false schema: type: array items: type: string - name: completionStatuses in: query required: false schema: type: array items: $ref: '#/components/schemas/CompletionStatus' - name: completionDate in: query required: false style: deepObject schema: $ref: '#/components/schemas/DateRange' - name: accessDate in: query required: false style: deepObject schema: $ref: '#/components/schemas/DateRange' - name: dueDate in: query required: false style: deepObject schema: $ref: '#/components/schemas/DateRange' - name: userStatuses in: query required: false schema: type: array items: $ref: '#/components/schemas/UserStatus' responses: '200': description: Successful operation content: application/xml: schema: $ref: '#/components/schemas/LearnersResultsResponse' application/json: schema: $ref: '#/components/schemas/LearnersResultsResponse' '400': $ref: '#/components/responses/StringBadRequest' '401': $ref: '#/components/responses/StringUnauthorized' '403': $ref: '#/components/responses/StringPermissionDenied' /learners/modules/results: get: tags: - results summary: >- Retrieves a paginated list of results for specific learners in specific modules parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/pageSize' - name: userIds in: query required: false schema: type: array items: type: string - name: courseIds in: query required: false schema: type: array items: type: string - name: moduleIds in: query required: false schema: type: array items: type: string - name: departmentIds in: query required: false schema: type: array items: type: string - name: completionStatuses in: query required: false schema: type: array items: $ref: '#/components/schemas/CompletionStatus' - name: completionDate in: query required: false style: deepObject schema: $ref: '#/components/schemas/DateRange' - name: accessDate in: query required: false style: deepObject schema: $ref: '#/components/schemas/DateRange' - name: dueDate in: query required: false style: deepObject schema: $ref: '#/components/schemas/DateRange' - name: userStatuses in: query required: false schema: type: array items: $ref: '#/components/schemas/UserStatus' responses: '200': description: Successful operation content: application/xml: schema: $ref: '#/components/schemas/LearnersModulesResultsResponse' application/json: schema: $ref: '#/components/schemas/LearnersModulesResultsResponse' '400': $ref: '#/components/responses/StringBadRequest' '401': $ref: '#/components/responses/StringUnauthorized' '403': $ref: '#/components/responses/StringPermissionDenied' /statistics/module: post: tags: - statistics summary: Update modules statuses parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/UpdateModulesStatuses' application/json: schema: $ref: '#/components/schemas/UpdateModulesStatuses' responses: '200': description: Successful operation content: application/xml: schema: type: integer description: Async Task ID xml: name: response application/json: schema: type: integer description: Async Task ID '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' delete: tags: - statistics summary: Reset modules statistics parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/ResetModulesStatistics' application/json: schema: $ref: '#/components/schemas/ResetModulesStatistics' responses: '200': description: Successful operation content: application/xml: schema: type: integer description: Async Task ID xml: name: response application/json: schema: type: integer description: Async Task ID '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /statistics/course: post: tags: - statistics summary: Update course status parameters: - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' requestBody: content: application/xml: schema: $ref: '#/components/schemas/UpdateCourseStatus' application/json: schema: $ref: '#/components/schemas/UpdateCourseStatus' responses: '200': description: Successful operation content: application/xml: schema: type: integer description: Async Task ID xml: name: response application/json: schema: type: integer description: Async Task ID '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/PermissionDenied' /task/{task_id}/status: get: tags: - task summary: Get async task status parameters: - name: task_id in: path required: true schema: type: integer - $ref: '#/components/parameters/authAccountUrl' - $ref: '#/components/parameters/authEmail' - $ref: '#/components/parameters/authPassword' responses: '200': description: Successful operation content: application/xml: schema: $ref: '#/components/schemas/TaskStatus' application/json: schema: $ref: '#/components/schemas/TaskStatus' '400': $ref: '#/components/responses/StringBadRequest' '401': $ref: '#/components/responses/StringUnauthorized' '403': $ref: '#/components/responses/StringPermissionDenied' components: parameters: authAccountUrl: name: X-Auth-Account-Url in: header required: true schema: type: string authEmail: name: X-Auth-Email in: header required: true schema: type: string authPassword: name: X-Auth-Password in: header required: true schema: type: string pageToken: name: pageToken in: query required: false schema: type: string pageSize: name: pageSize in: query required: false schema: type: integer responses: BadRequest: description: Bad Request content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: 400 message: Invalid parameter Unauthorized: description: Unauthorized content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: 401 message: User authentication error PermissionDenied: description: Permission Denied content: application/xml: schema: $ref: '#/components/schemas/ErrorResponse' application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: code: 403 message: Permission denied StringBadRequest: description: Bad Request content: text/plain: schema: type: string example: Invalid parameter StringUnauthorized: description: Unauthorized content: text/plain: schema: type: string example: User authentication error StringPermissionDenied: description: Forbidden content: text/plain: schema: type: string example: Permission denied schemas: ErrorResponse: required: - code - message type: object properties: code: type: integer message: type: string xml: name: response NewDepartment: required: - name - parentDepartmentId type: object properties: name: type: string parentDepartmentId: type: string format: uuid code: type: string xml: name: request UpdateDepartment: type: object properties: name: type: string parentDepartmentId: type: string format: uuid code: type: string xml: name: request Department: required: - departmentId - name type: object properties: departmentId: type: string format: uuid name: type: string parentDepartmentId: type: string format: uuid code: type: string xml: name: department DepartmentsPage: required: - departments type: object properties: departments: type: array items: $ref: '#/components/schemas/Department' xml: wrapped: true nextPageToken: type: string xml: name: response Role: required: - roleId - title - description type: object properties: roleId: type: string format: uuid title: type: string description: type: string xml: name: role Enrollment: required: - enrollmentId - courseId - learnerId - accessDate - shouldLockAfterDueDate type: object properties: enrollmentId: type: string format: uuid courseId: type: string format: uuid learnerId: type: string format: uuid accessDate: type: string format: date dueDate: type: string format: date expirationDate: type: string format: date shouldLockAfterDueDate: type: boolean xml: name: enrollment EnrollmentsPage: required: - enrollments type: object properties: enrollments: type: array items: $ref: '#/components/schemas/Enrollment' xml: wrapped: true nextPageToken: type: string xml: name: response NewEnrollment: required: - courseIds - learnerIds - dueDateType type: object properties: courseIds: $ref: '#/components/schemas/ArrayOfIds' learnerIds: $ref: '#/components/schemas/ArrayOfIds' accessDate: type: string format: date dueDateType: $ref: '#/components/schemas/DueDateType' dueDate: type: string format: date duePeriod: type: integer lockAfterDueDate: type: boolean xml: name: request DeleteEnrollments: required: - enrollmentIds type: object properties: enrollmentIds: $ref: '#/components/schemas/ArrayOfIds' UpdateEnrollment: required: - accessDate - dueDateType type: object properties: accessDate: type: string format: date dueDateType: $ref: '#/components/schemas/DueDateType' dueDate: type: string format: date duePeriod: type: integer lockAfterDueDate: type: boolean xml: name: request Reenroll: required: - accessDate - dueDateType type: object properties: accessDate: type: string format: date dueDateType: $ref: '#/components/schemas/DueDateType' dueDate: type: string format: date duePeriod: type: integer lockAfterDueDate: type: boolean xml: name: request NewGroup: required: - name type: object properties: name: type: string userIds: $ref: '#/components/schemas/ArrayOfIds' xml: name: request NewSmartGroup: required: - name - rules type: object properties: name: type: string rules: $ref: '#/components/schemas/SmartGroupRuleNodes' xml: name: request Group: required: - groupId - name - isSmart type: object properties: groupId: type: string format: uuid name: type: string isSmart: type: boolean xml: name: group GroupsPage: required: - groups type: object properties: groups: type: array items: $ref: '#/components/schemas/Group' xml: wrapped: true nextPageToken: type: string xml: name: response DetailedGroup: required: - groupId - name - usersCount - isSmart - groupIds type: object properties: groupId: type: string format: uuid name: type: string usersCount: type: integer isSmart: type: boolean userIds: $ref: '#/components/schemas/ArrayOfIds' xml: name: group UpdateGroup: required: - name type: object properties: name: type: string xml: name: request UpdateGroupMembers: required: - userIds type: object properties: userIds: $ref: '#/components/schemas/ArrayOfIds' xml: name: request UpdateSmartGroup: type: object properties: name: type: string rules: $ref: '#/components/schemas/SmartGroupRuleNodes' xml: name: request NewUser: required: - departmentId - password - fields type: object properties: departmentId: type: string format: uuid password: type: string format: password fields: $ref: '#/components/schemas/UserProfileFields' roleId: type: string format: uuid manageableDepartmentIds: $ref: '#/components/schemas/ArrayOfIds' groupIds: $ref: '#/components/schemas/ArrayOfIds' sendLoginEmail: type: boolean invitationMessage: type: string roles: $ref: '#/components/schemas/UpdateUserRoles' xml: name: request User: required: - userId - roleId - departmentId - status - sendLoginEmail - invitationMessage - groups type: object properties: userId: type: string format: uuid roleId: type: string format: uuid departmentId: type: string format: uuid status: $ref: '#/components/schemas/UserStatus' fields: $ref: '#/components/schemas/UserProfileFields' groups: $ref: '#/components/schemas/ArrayOfIds' manageableDepartmentIds: $ref: '#/components/schemas/ArrayOfIds' addedDate: type: string format: date lastLoginDate: type: string format: date roles: $ref: '#/components/schemas/UserRoles' xml: name: userProfile UsersPage: required: - userProfiles type: object properties: userProfiles: type: array items: $ref: '#/components/schemas/User' xml: wrapped: true nextPageToken: type: string xml: name: response UpdateUser: type: object properties: fields: $ref: '#/components/schemas/UserProfileFields' departmentId: type: string format: uuid groupIds: $ref: '#/components/schemas/ArrayOfIds' roleId: type: string format: uuid manageableDepartmentIds: $ref: '#/components/schemas/ArrayOfIds' roles: $ref: '#/components/schemas/UpdateUserRoles' xml: name: request UpdateUserPassword: type: object properties: password: type: string format: password xml: name: request UpdateUserStatus: type: object properties: status: $ref: '#/components/schemas/UserStatus' xml: name: request ScheduledUserDeactivation: required: - date type: object properties: date: type: string format: date UserProfileFields: required: - login type: object properties: additionalProperties: type: string UserFieldInfo: required: - userFieldInfoId - name - label - type - isUnique - isRequired - orderPriority type: object properties: userFieldInfoId: type: string format: uuid name: type: string label: type: string type: type: string isUnique: type: boolean isRequired: type: boolean orderPriority: type: integer values: type: array items: type: object properties: name: type: string value: type: string xml: name: field xml: wrapped: true xml: name: userFieldInfo UserPointsInfo: required: - userId - points properties: userId: type: string format: uuid points: type: number xml: name: userPointsInfo AwardGamificationPoints: required: - userId - amount - reason type: object properties: userId: type: string format: uuid amount: type: number reason: type: string xml: name: awardGamificationPoints WithdrawGamificationPoints: required: - userId - amount - reason type: object properties: userId: type: string format: uuid amount: type: number reason: type: string xml: name: withdrawGamificationPoints LearnersResultsResponse: required: - results type: object properties: results: type: array items: $ref: '#/components/schemas/LearnerResult' xml: wrapped: true nextPageToken: type: string xml: name: response LearnerResult: required: - userId - courseId - courseTitle - accessDate - completionStatus - isOverdue type: object properties: userId: type: string format: uuid courseId: type: string format: uuid courseTitle: type: string enrollmentId: type: string format: uuid accessDate: type: string format: dateTime dueDate: type: string format: dateTime expirationDate: type: string format: dateTime completionDate: type: string format: dateTime timeSpent: type: integer description: Time spent in seconds completionStatus: $ref: '#/components/schemas/CompletionStatus' awardedScore: type: number format: float passingScore: type: number format: float progress: type: number format: float isOverdue: type: boolean viewsCount: type: integer xml: name: result LearnersModulesResultsResponse: required: - results type: object properties: results: type: array items: $ref: '#/components/schemas/LearnerModuleResult' xml: wrapped: true nextPageToken: type: string xml: name: response LearnerModuleResult: required: - userId - courseId - moduleId - moduleTitle - accessDate - completionStatus - isOverdue type: object properties: userId: type: string format: uuid courseId: type: string format: uuid moduleId: type: string format: uuid moduleTitle: type: string enrollmentId: type: string format: uuid accessDate: type: string format: dateTime dueDate: type: string format: dateTime expirationDate: type: string format: dateTime completionDate: type: string format: dateTime timeSpent: type: integer description: Time spent in seconds completionStatus: $ref: '#/components/schemas/CompletionStatus' awardedScore: type: number format: float passingScore: type: number format: float progress: type: number format: float isOverdue: type: boolean viewsCount: type: integer xml: name: result CompletionStatus: type: string enum: - not_started - in_progress - pending - complete - passed - accepted - incomplete - failed - declined UserStatus: type: integer enum: - 1 - 3 description: | 1 - Active 3 - Inactive ArrayOfIds: type: array items: type: string format: uuid xml: name: id xml: wrapped: true DateRange: type: object required: - startDate - endDate properties: startDate: type: string format: dateTime endDate: type: string format: dateTime DueDateType: type: string enum: - unlimited - default - due_date - due_period SmartGroupRuleOperator: type: integer enum: - 1 - 2 description: | 1 - Only 2 - This and nested SmartGroupRuleAttributeType: type: integer enum: - 1 - 2 - 3 description: | 1 - Department 2 - Group 3 - Profile field SmartGroupRules: required: - groupId - rules type: object properties: groupId: type: string format: uuid rules: $ref: '#/components/schemas/SmartGroupRuleNodes' SmartGroupRuleNodes: required: - and type: object properties: and: type: array items: $ref: '#/components/schemas/AndSmartGroupRuleNode' AndSmartGroupRuleNode: required: - or type: object properties: or: type: array items: $ref: '#/components/schemas/OrSmartGroupRuleNode' OrSmartGroupRuleNode: required: - rule type: object properties: rule: $ref: '#/components/schemas/SmartGroupRule' SmartGroupRule: required: - attributeType - attributeId - operator - value type: object properties: attributeType: $ref: '#/components/schemas/SmartGroupRuleAttributeType' attributeId: type: string format: uuid operator: $ref: '#/components/schemas/SmartGroupRuleOperator' value: type: string ContentItemInformation: required: - contentItemId - title - description - userId - addedDate - viewUrl - type type: object properties: contentItemId: type: string format: uuid title: type: string description: type: string userId: type: string format: uuid addedDate: type: string format: date-time viewUrl: type: string format: uri type: type: string xml: name: contentItem ContentItemsInformationPage: required: - contentItems type: object properties: contentItems: type: array items: $ref: '#/components/schemas/ContentItemInformation' xml: wrapped: true nextPageToken: type: string xml: name: response ContentItemFinalStatus: required: - userId - status - progress type: object properties: userId: type: string format: uuid status: type: string progress: type: integer minimum: 0 maximum: 100 completionDate: type: string format: date-time lastViewDate: type: string format: date-time xml: name: status CoursesModule: required: - moduleId - contentItemId - courseId - title - description - authorId - addedDate - viewUrl type: object properties: moduleId: type: string format: uuid contentItemId: type: string format: uuid courseId: type: string format: uuid title: type: string description: type: string authorId: type: string format: uuid addedDate: type: string format: date-time viewUrl: type: string format: uri xml: name: module CourseModule: required: - moduleId - itemId - courseId - title - description - authorId - addedDate - type type: object properties: moduleId: type: string format: uuid itemId: type: string format: uuid courseId: type: string format: uuid title: type: string description: type: string authorId: type: string format: uuid addedDate: type: string format: date-time type: $ref: '#/components/schemas/ModuleItemType' viewUrl: type: string format: uri xml: name: module CoursesModulesPage: required: - modules type: object properties: modules: type: array items: $ref: '#/components/schemas/CoursesModule' xml: wrapped: true nextPageToken: type: string xml: name: response CourseModulesPage: required: - modules type: object properties: modules: type: array items: $ref: '#/components/schemas/CourseModule' xml: wrapped: true nextPageToken: type: string xml: name: response UserRoles: type: array items: $ref: '#/components/schemas/UserRole' xml: wrapped: true UserRole: required: - roleId - roleType type: object properties: roleId: type: string format: uuid roleType: type: string manageableDepartmentIds: $ref: '#/components/schemas/ArrayOfIds' xml: name: role UpdateUserRoles: type: array items: $ref: '#/components/schemas/UpdateUserRole' xml: wrapped: true UpdateUserRole: required: - roleId type: object properties: roleId: type: string format: uuid manageableDepartmentIds: $ref: '#/components/schemas/ArrayOfIds' xml: name: role ModuleStatus: required: - contentItemId - date - reason - status - awardedScore type: object properties: contentItemId: type: string format: uuid date: type: string format: date-time reason: type: string status: $ref: '#/components/schemas/CompletionStatus' awardedScore: type: number minimum: 0 maximum: 100 xml: name: moduleStatus UpdateModulesStatuses: required: - enrollmentIds - courseId - moduleStatuses type: object properties: enrollmentIds: $ref: '#/components/schemas/ArrayOfIds' courseId: type: string format: uuid moduleStatuses: type: array items: $ref: '#/components/schemas/ModuleStatus' xml: wrapped: true xml: name: UpdateModulesStatuses ResetModulesStatistics: required: - courseId - enrollmentIds - contentItemIds type: object properties: courseId: type: string format: uuid enrollmentIds: $ref: '#/components/schemas/ArrayOfIds' contentItemIds: $ref: '#/components/schemas/ArrayOfIds' xml: name: resetModulesStatistics UpdateCourseStatus: required: - enrollmentIds - courseId - status type: object properties: enrollmentIds: $ref: '#/components/schemas/ArrayOfIds' courseId: type: string format: uuid date: type: string format: date-time reason: type: string status: $ref: '#/components/schemas/CourseCompletionStatus' awardedScore: type: number minimum: 0 maximum: 100 xml: name: UpdateModulesStatuses CourseCompletionStatus: type: string enum: - complete - incomplete - passed - failed - automatic TaskStatus: type: object properties: status: $ref: '#/components/schemas/TaskStatusEnum' xml: name: request TaskStatusEnum: type: string enum: - waiting - in_progress - complete - cancelled - error ModuleItemType: type: string enum: - material - training