{"swagger":"2.0","info":{"description":"aNewSpring API specification","title":"aNewSpring API","version":"5.4.4"},"basePath":"/api","tags":[{"name":"users","description":"User management"},{"name":"groups","description":"(User) group management"},{"name":"resellers","description":"Reseller management"},{"name":"sso","description":"Single sign-on"},{"name":"subscriptions","description":"(Course) subscription management"},{"name":"courses","description":"Course (instance) management"},{"name":"bundles","description":"Bundle course management"},{"name":"events","description":"Calendar item management"},{"name":"accessCodes","description":"Access code (group) management"},{"name":"bookableEvents","description":"Event management"},{"name":"skillProfiles","description":"Skill profile management"},{"name":"surveys","description":"Survey results"}],"schemes":["http","https"],"security":[{"Header":[]},{"Parameter":[]}],"securityDefinitions":{"Header":{"type":"apiKey","name":"X-API-Key","in":"header"},"Parameter":{"type":"apiKey","name":"_key","in":"query"}},"paths":{"/userExists/{userID}":{"get":{"tags":["users"],"summary":"Check if user exists","description":"This can be used to check if a certain user exists in the learning environment.<br/> <br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /userExists&userUID=example ","operationId":"userExists","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"}],"produces":["application/json","application/xml","text/plain"],"responses":{"200":{"$ref":"#/responses/Boolean"}}}},"/getUser/{userID}":{"get":{"tags":["users"],"summary":"Get user","description":"This can be used to obtain the (personal) details of the specified user.<br/> <br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /getUser?userUID=example <br/> **Note:** In the API we use old role terms. With student we mean learner, with teacher we mean instructor and with mentor we mean observer.","operationId":"getUser","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/User"}}}}},"/getUsers":{"get":{"tags":["users"],"summary":"Get all users","description":"This can be used to obtain (a core set of details of) all users in the learning environment.","operationId":"getUsers","produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"properties":{"users":{"type":"array","items":{"$ref":"#/definitions/UserCore"},"xml":{"wrapped":true}}}}}}}},"/initializeId/{login}/{userID}":{"post":{"tags":["users"],"summary":"Initialize user ID","description":"This can be used to set the ID of an existing user who does not have an ID yet.","operationId":"initializeId","consumes":["application/x-www-form-urlencoded"],"parameters":[{"name":"login","in":"path","type":"string","required":true,"description":"the login of the user"},{"$ref":"#/parameters/UserID"}],"responses":{"200":{"description":"success"},"404":{"description":"no user exists with the specified login"},"409":{"description":"the user already has an ID or if the ID is already used"}}}},"/addUser/{userID}":{"post":{"tags":["users"],"summary":"Add user","description":"This can be used to add a new user to the learning environment. All parameters except ID are optional, but keep in mind that users without a name can result in unforeseen situations on certain screens.","operationId":"addUser","consumes":["application/x-www-form-urlencoded","multipart/form-data"],"parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/Login"},{"$ref":"#/parameters/FirstName"},{"$ref":"#/parameters/MiddleName"},{"$ref":"#/parameters/LastName"},{"$ref":"#/parameters/Gender"},{"$ref":"#/parameters/UserTitle"},{"$ref":"#/parameters/Initials"},{"$ref":"#/parameters/Email"},{"$ref":"#/parameters/Function"},{"$ref":"#/parameters/Company"},{"$ref":"#/parameters/DateOfBirth"},{"$ref":"#/parameters/TelephoneNumber"},{"$ref":"#/parameters/FaxNumber"},{"$ref":"#/parameters/CellPhoneNumber"},{"$ref":"#/parameters/Address"},{"$ref":"#/parameters/Zip"},{"$ref":"#/parameters/Residence"},{"$ref":"#/parameters/Country"},{"$ref":"#/parameters/InvoiceAddress"},{"$ref":"#/parameters/InvoiceZip"},{"$ref":"#/parameters/InvoiceResidence"},{"$ref":"#/parameters/InvoiceCountry"},{"$ref":"#/parameters/Custom1"},{"$ref":"#/parameters/Custom2"},{"$ref":"#/parameters/Custom3"},{"$ref":"#/parameters/Custom4"},{"$ref":"#/parameters/Custom5"},{"$ref":"#/parameters/Locale"},{"$ref":"#/parameters/TimeZoneGroup"},{"$ref":"#/parameters/TimeZone"},{"$ref":"#/parameters/Role"},{"$ref":"#/parameters/Password"},{"$ref":"#/parameters/GeneratePassword"},{"$ref":"#/parameters/ForcePasswordChange"},{"$ref":"#/parameters/Notify"},{"$ref":"#/parameters/Active"},{"$ref":"#/parameters/Renewable"},{"$ref":"#/parameters/Avatar"},{"$ref":"#/parameters/DeleteAvatar"}],"responses":{"200":{"description":"success"},"409":{"description":"a user with the specified ID already exists | setting force password change is not allowed | user is archived"}}}},"/updateUser/{userID}":{"post":{"tags":["users"],"summary":"Update user","description":"This can be used to update an existing user in the learning environment.<br/> <br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /updateUser?userUID=example","operationId":"updateUser","consumes":["application/x-www-form-urlencoded","multipart/form-data"],"parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"$ref":"#/parameters/NewID"},{"$ref":"#/parameters/Login"},{"$ref":"#/parameters/FirstName"},{"$ref":"#/parameters/MiddleName"},{"$ref":"#/parameters/LastName"},{"$ref":"#/parameters/Gender"},{"$ref":"#/parameters/UserTitle"},{"$ref":"#/parameters/Initials"},{"$ref":"#/parameters/Email"},{"$ref":"#/parameters/Function"},{"$ref":"#/parameters/Company"},{"$ref":"#/parameters/DateOfBirth"},{"$ref":"#/parameters/TelephoneNumber"},{"$ref":"#/parameters/FaxNumber"},{"$ref":"#/parameters/CellPhoneNumber"},{"$ref":"#/parameters/Address"},{"$ref":"#/parameters/Zip"},{"$ref":"#/parameters/Residence"},{"$ref":"#/parameters/Country"},{"$ref":"#/parameters/InvoiceAddress"},{"$ref":"#/parameters/InvoiceZip"},{"$ref":"#/parameters/InvoiceResidence"},{"$ref":"#/parameters/InvoiceCountry"},{"$ref":"#/parameters/Custom1"},{"$ref":"#/parameters/Custom2"},{"$ref":"#/parameters/Custom3"},{"$ref":"#/parameters/Custom4"},{"$ref":"#/parameters/Custom5"},{"$ref":"#/parameters/Locale"},{"$ref":"#/parameters/TimeZoneGroup"},{"$ref":"#/parameters/TimeZone"},{"$ref":"#/parameters/Password"},{"$ref":"#/parameters/GeneratePassword"},{"$ref":"#/parameters/ForcePasswordChange"},{"$ref":"#/parameters/Notify"},{"$ref":"#/parameters/Active"},{"$ref":"#/parameters/Archived"},{"$ref":"#/parameters/Renewable"},{"$ref":"#/parameters/Avatar"},{"$ref":"#/parameters/DeleteAvatar"}],"responses":{"200":{"description":"success"},"409":{"description":"* a user with the specified ID already exists\n* setting force password change is not allowed\n* user is archived\n* cannot create a user and archive them at the same time\\n* cannot set a user to active and archive it at the same time\\n* no sufficient balance"}}}},"/addOrUpdateUser/{userID}":{"post":{"tags":["users"],"summary":"Add or update user","description":"This can be used to add or update a user, depending or whether the user already exists in the learning environment. The allowed parameters depend on whether the user is added or updated (see [addUser](#!/users/addUser) and [updateUser](#!/users/updateUser)).<br/> <br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /addOrUpdateUser?userUID=example\"","operationId":"addOrUpdateUser","consumes":["application/x-www-form-urlencoded","multipart/form-data"],"parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"$ref":"#/parameters/NewID"},{"$ref":"#/parameters/Login"},{"$ref":"#/parameters/FirstName"},{"$ref":"#/parameters/MiddleName"},{"$ref":"#/parameters/LastName"},{"$ref":"#/parameters/Gender"},{"$ref":"#/parameters/UserTitle"},{"$ref":"#/parameters/Initials"},{"$ref":"#/parameters/Email"},{"$ref":"#/parameters/Function"},{"$ref":"#/parameters/Company"},{"$ref":"#/parameters/DateOfBirth"},{"$ref":"#/parameters/TelephoneNumber"},{"$ref":"#/parameters/FaxNumber"},{"$ref":"#/parameters/CellPhoneNumber"},{"$ref":"#/parameters/Address"},{"$ref":"#/parameters/Zip"},{"$ref":"#/parameters/Residence"},{"$ref":"#/parameters/Country"},{"$ref":"#/parameters/InvoiceAddress"},{"$ref":"#/parameters/InvoiceZip"},{"$ref":"#/parameters/InvoiceResidence"},{"$ref":"#/parameters/InvoiceCountry"},{"$ref":"#/parameters/Custom1"},{"$ref":"#/parameters/Custom2"},{"$ref":"#/parameters/Custom3"},{"$ref":"#/parameters/Custom4"},{"$ref":"#/parameters/Custom5"},{"$ref":"#/parameters/Locale"},{"$ref":"#/parameters/TimeZoneGroup"},{"$ref":"#/parameters/TimeZone"},{"$ref":"#/parameters/Password"},{"$ref":"#/parameters/GeneratePassword"},{"$ref":"#/parameters/ForcePasswordChange"},{"$ref":"#/parameters/Notify"},{"$ref":"#/parameters/Active"},{"$ref":"#/parameters/Archived"},{"$ref":"#/parameters/Renewable"},{"$ref":"#/parameters/Avatar"},{"$ref":"#/parameters/DeleteAvatar"}],"responses":{"200":{"description":"success"},"409":{"description":"* a user with the specified ID already exists\n* setting force password change is not allowed\n* user is archived\n* cannot create a user and archive them at the same time\n* cannot set a user to active and archive it at the same time\n* no sufficient balance"}}}},"/addUserRoles/{userID}":{"post":{"tags":["users"],"summary":"Add user roles","description":"This can be used to add roles to an existing user. <br/> <br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /addUserRoles?userUID=example","operationId":"addUserRoles","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"$ref":"#/parameters/Role"},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore roles that the user already has"}],"responses":{"200":{"description":"success"},"404":{"description":"no user exists with the specified ID"},"409":{"description":"a user already has a specified role (and **ignoreDuplicates** is **false**)"}}}},"/deleteUser/{userID}":{"post":{"tags":["users"],"summary":"Delete user","description":"This can be used to remove an existing user.<br/> <br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /deleteUser?userUID=example","operationId":"deleteUser","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"}],"responses":{"200":{"description":"success"},"404":{"description":"no user exists with the specified ID"}}}},"/linkAuthorToContentLabels/{userID}/":{"post":{"tags":["users"],"summary":"Link author to one ore more content libraries","description":"This can be used to link an existing user with the author role to existing content libraries.<br/> <br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /linkAuthorToContentLabels?userUID=example","operationId":"linkAuthorToContentLabels","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"name":"contentLabel","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the content library, this parameter can occur multiple times"},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore content libraries which are already linked to the author"}],"responses":{"200":{"description":"success"},"404":{"description":"no author or content library exists with the specified ID"},"409":{"description":"the author is already linked to the content library (and **ignoreDuplicates** is **false**) | the user doesn't have the author role"}}}},"/linkDesignerToContentLabels/{userID}/":{"post":{"tags":["users"],"summary":"Link designer to one or more content libraries","description":"This can be used to link an existing user with the designer role to existing content libraries.<br/> <br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /linkDesignerToContentLabels?userUID=example","operationId":"linkDesignerToContentLabels","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"name":"contentLabel","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the content library, this parameter can occur multiple times"},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore content libraries which are already linked to the designer"}],"responses":{"200":{"description":"success"},"404":{"description":"no designer or content library exists with the specified ID"},"409":{"description":"the designer is already linked to the content library (and **ignoreDuplicates** is **false**) | the user doesn't have the designer role"}}}},"/unlinkAuthorFromContentLabels/{userID}/":{"post":{"tags":["users"],"summary":"Unlink author from one or more content libraries","description":"This can be used to unlink an existing user with the author role from existing content libraries.<br/> <br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /unlinkAuthorFromContentLabels?userUID=example","operationId":"unlinkAuthorFromContentLabels","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"name":"contentLabel","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the content library, this parameter can occur multiple times"},{"name":"ignoreMissing","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore content libraries which are not linked to the author"}],"responses":{"200":{"description":"success"},"404":{"description":"no author or content library exists with the specified ID"},"409":{"description":"the author is not linked to the content library (and **ignoreMissing** is **false**) | the user doesn't have the author role"}}}},"/unlinkDesignerFromContentLabels/{userID}/":{"post":{"tags":["users"],"summary":"Unlink designer from one or more content libraries","description":"This can be used to unlink an existing user with the designer role from one or more existing content libraries.<br/> <br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /unlinkDesignerFromContentLabels?userUID=example","operationId":"unlinkDesignerFromContentLabels","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"name":"contentLabel","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the content library, this parameter can occur multiple times"},{"name":"ignoreMissing","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore content libraries which are not linked to the designer"}],"responses":{"200":{"description":"success"},"404":{"description":"no designer or content library exists with the specified ID"},"409":{"description":"the designer is not linked to the content library (and **ignoreMissing** is **false**) | the user doesn't have the designer role"}}}},"/getLoginToken/{userID}":{"get":{"tags":["sso"],"summary":"Get login token","description":"This can be used to obtain a login token for the specified user. This token can be used to log in the user via SSO.<br/> <br/> **Note:** If a user external ID is added as a path component, that will have priority and all other IDs will be ignored. If a user external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if a user external ID isn't included (as a parameter or as a path) in the call.<br/>Example: /getLoginToken?userUID=example","operationId":"getLoginToken","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"}],"produces":["application/json","application/xml","text/plain"],"responses":{"200":{"description":"success","schema":{"properties":{"result":{"type":"string","example":"24345226-ec3a-4d90-a5d0-aa99c80ec491","xml":{"name":"value"}}},"xml":{"name":"result"}}},"404":{"description":"no user exists with the specified ID"}}}},"/isSubscribed/{userID}/{courseID}":{"get":{"tags":["subscriptions"],"summary":"Check if user is subscribed to course","description":"This can be used to check if a certain user is enrolled in a certain course. <br/> <br/> **Note:** If user external ID and course external ID are added as path components, they will have priority and all other IDs will be ignored. If user external ID and course external ID are added as parameters, they will have priority and the UIDs will be ignored. If UIDs are added as parameters, they will only be considered if user external ID and course external ID aren't included (as a parameter or as a path) in the call.<br/>Example: /isSubscribed?userUID=example&courseUID=example","operationId":"isSubscribed","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/UserUID"},{"$ref":"#/parameters/CourseUID"}],"produces":["application/json","application/xml","text/plain"],"responses":{"200":{"$ref":"#/responses/Boolean"},"404":{"description":"no user and/or course exists with the specified ID"}}}},"/getSubscriptions/{userID}":{"get":{"tags":["subscriptions"],"summary":"Get subscriptions for user","description":"This can be used to obtain the subscriptions of the specified user.<br/> <br/> **Note:** If a user external ID is added as a path component, that will have priority and all other IDs will be ignored. If a user external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if a user external ID isn't included (as a parameter or as a path) in the call.<br/>Example: /getSubscriptions?userUID=example<br/><br/>The active parameter shows if the user has started with the course.","operationId":"getSubscriptions","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"name":"skipStats","in":"formData","type":"string","enum":[true,false],"default":false,"description":"don't calculate statistics (progress, knowledgeIntake, efficiency, objectivesProgress) for performance"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"properties":{"courses":{"type":"array","items":{"$ref":"#/definitions/Subscription"},"xml":{"wrapped":true}}}}},"404":{"description":"no user exists with the specified ID"}}}},"/subscribe/{userID}/{courseID}":{"post":{"tags":["subscriptions"],"summary":"Subscribe student to course","description":"This can be used to enrol an existing student (a user having the student role) in an existing course in the learning environment. <br/><br/> **Note:** If user external ID and course external ID are added as path components, they will have priority and all other IDs will be ignored. If user external ID and course external ID are added as parameters, they will have priority and the UIDs will be ignored. If UIDs are added as parameters, they will only be considered if user external ID and course external ID aren't included (as a parameter or as a path) in the call.<br/>Example: /subscribe?userUID=example&courseUID=example","operationId":"subscribe","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/UserUID"},{"$ref":"#/parameters/CourseUID"},{"name":"reseller","in":"formData","type":"string","description":"the external ID of the reseller that should be linked to this enrolment; if not present, the reseller that is linked to the domain on which the API is called, is used, or otherwise the reseller that is marked as default reseller"},{"$ref":"#/parameters/UserCourseStartDate"},{"$ref":"#/parameters/UserCourseExpireDate"},{"name":"addToTeacherStudents","in":"formData","type":"string","enum":[true,false],"default":true,"description":"add the student to the 'My Students' list of all teachers of the course"},{"name":"notify","in":"formData","type":"string","enum":[true,false],"default":false,"description":"send an email to the student to notify him of the subscription"}],"responses":{"200":{"description":"success"},"404":{"description":"no user and/or course exists with the specified ID"},"409":{"description":"* The user is not active.\n* The user is not a student.\n* The course is expired, a template or not active.\n* The user is already enrolled in the course.\n* There are no sufficient licences"}}}},"/subscribeGroups/{courseID}":{"post":{"tags":["subscriptions"],"summary":"Add groups to course","description":"This can be used to add existing learner groups to an existing course. <br/><br/> **Note:** If a course external ID is added as a path component, that will have priority and all other IDs will be ignored. If a course external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if a course external ID isn't included (as a parameter or as a path) in the call.<br/>Example: /subscribeGroups?courseUID=example&groupID=example","operationId":"subscribeGroups","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/CourseUID"},{"name":"<b> groupID </b>","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the external ID of the group, this parameter can occur multiple times"},{"name":"reseller","in":"formData","type":"string","description":"the external ID of the reseller that should be linked to this enrolment; if not present, the reseller that is linked to the domain on which the API is called, is used, or otherwise the reseller that is marked as default reseller"},{"$ref":"#/parameters/GroupCourseStartDate"},{"$ref":"#/parameters/GroupCourseExpireDate"},{"name":"addToTeacherStudents","in":"formData","type":"string","enum":[true,false],"default":true,"description":"add the student to the 'My Students' list of all teachers of the course"},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore groups that are already in the course"},{"name":"notify","in":"formData","type":"string","enum":[true,false],"default":false,"description":"send an email to the students to notify them of the subscription(s)"}],"responses":{"200":{"description":"success"},"404":{"description":"Course does not exist"},"409":{"description":"* The user is not active.\n* The user is not a student.\n* The course is expired, a template or not active.\n* There are no sufficient licences.\n* Some Student groups do not exist."}}}},"/updateSubscription/{userID}/{courseID}":{"post":{"tags":["subscriptions"],"summary":"Update subscription","description":"This can be used to update an existing enrolment of a student in a course in the learning environment. <br/><br/> **Note:** If user external ID and course external ID are added as path components, they will have priority and all other IDs will be ignored. If user external ID and course external ID are added as parameters, they will have priority and the UIDs will be ignored. If UIDs are added as parameters, they will only be considered if user external ID and course external ID aren't included (as a parameter or as a path) in the call.<br/>Example: updateSubscription?userUID=example&courseUID=example","operationId":"updateSubscription","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/UserUID"},{"$ref":"#/parameters/CourseUID"},{"$ref":"#/parameters/UserCourseStartDate"},{"$ref":"#/parameters/UserCourseExpireDate"},{"$ref":"#/parameters/UserCourseExpired"}],"responses":{"200":{"description":"success"},"404":{"description":"no user and/or course exists with the specified ID"},"409":{"description":"the specified user in not enrolled in the specified course, or the start date is changed after the student has already started"}}}},"/unsubscribe/{userID}/{courseID}":{"post":{"tags":["subscriptions"],"summary":"Unsubscribe student from course","description":"This can be used to unenrol a student from in an existing course in the learning environment.<br/><br/> **Note:** If user external ID and course external ID are added as path components, they will have priority and all other IDs will be ignored. If user external ID and course external ID are added as parameters, they will have priority and the UIDs will be ignored. If UIDs are added as parameters, they will only be considered if user external ID and course external ID aren't included (as a parameter or as a path) in the call.<br/>Example: /unsubscribe?userUID=example&courseUID=example","operationId":"unsubscribe","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/UserUID"},{"$ref":"#/parameters/CourseUID"},{"name":"ignoreMissing","in":"formData","type":"string","enum":[true,false],"default":false,"description":"do not give an error message if the user is not enrolled in the course"}],"responses":{"200":{"description":"success"},"404":{"description":"no user and/or course exists with the specified ID"},"409":{"description":"the user is not enrolled in the course (and **ignoreMissing** is **false**)"}}}},"/getResults/{userID}":{"get":{"tags":["subscriptions"],"summary":"Get course results for user","description":"This can be used to obtain the course results of the specified user. These results contain the general subscription information of the courses (active, start date, finished, expired, completed), the global results of the courses (progress, retention, efficiency, grade), the results of the (individual attempts of the) course activities (start date, completed, complete date, progress, score, passed) and the results of the learning objectives (value, target, knowledge intake).<br><br>'Finished' is the subscription state of the user. This is false for a new or active subscription and true for an expired or unsubscribed subscription.<br>'Completed' is true when the course completing activity has been completed.<br>'Progress' shows the progress over the activities that are currently available to the learner.<br>'Grade' contains the grade of the activity that has been selected at 'Base course grade on'.<br><br>**NOTE:** The system also provides WebHook functionality that can push results as soon as they become available. This can be much more efficient than polling for results using this API function. <br/> <br/> **Note:** If a user external ID is added as a path component, that will have priority and all other IDs will be ignored. If a user external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if a user external ID isn't included (as a parameter or as a path) in the call.<br/>Example: /getResults?userUID=example","operationId":"getResults","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"name":"asStudent","in":"query","type":"string","enum":[true,false],"default":false,"description":"indicates if the results should contain only the results the user is allowed to see (meaning only the active course activities and those only if the settings of the activity allow it (\"Feedback type\")"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"properties":{"courses":{"type":"array","items":{"$ref":"#/definitions/CourseResult"},"xml":{"wrapped":true}}}}},"404":{"description":"no user exists with the specified ID, or the user is not subscribed to the course"}}}},"/getResults/{userID}/{courseID}":{"get":{"tags":["subscriptions"],"summary":"Get results for user course","description":"This can be used to obtain the course results of the specified user and course. These results contain the general subscription information of the course (active, start date, finished, expired, completed), the global results of the course (progress, retention, efficiency, grade), the results of the (individual attempts of the) course activities (start date, completed, complete date, progress, score, passed) and the results of the learning objectives (value, target, knowledge intake).<br><br>'Finished' is the subscription state of the user. This is false for a new or active subscription and true for an expired or unsubscribed subscription.<br>'Completed' is true when the course completing activity has been completed.<br>'Progress' shows the progress over the activities that are currently available to the learner.<br>'Grade' contains the grade of the activity that has been selected at 'Base course grade on'.<br><br>**NOTE:** The system also provides WebHook functionality that can push results as soon as they become available. This can be much more efficient than polling for results using this API function. <br/><br/> **Note:** If user external ID and course external ID are added as path components, they will have priority and all other IDs will be ignored. If user external ID and course external ID are added as parameters, they will have priority and the UIDs will be ignored. If UIDs are added as parameters, they will only be considered if user external ID and course external ID aren't included (as a parameter or as a path) in the call.<br/>Example: /getResults?userUID='example'&courseUID='example'","operationId":"getCourseResults","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/UserUID"},{"$ref":"#/parameters/CourseUID"},{"name":"asStudent","in":"query","type":"string","enum":[true,false],"default":false,"description":"indicates if the results should contain only the results the user is allowed to see (meaning only the active course activities and those only if the settings of the activity allow it (\"Feedback type\")"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/CourseResult"}},"404":{"description":"no user and/or course exists with the specified ID, or the user is not subscribed to the course"}}}},"/getResults/{userID}/{courseID}/{activityID}":{"get":{"tags":["subscriptions"],"summary":"Get results for user course activity","description":"This can be used to obtain the results of the specified course activity for the specified user. These contain the results of the (individual attempts of the) course activity (start date, completed, complete date, progress, score, passed).<br><br>**NOTE:** The system also provides WebHook functionality that can push results as soon as they become available. This can be much more efficient than polling for results using this API function. <br/><br/> **Note:** If user external ID, course external ID and activity external ID are added as path components, they will have priority and all other IDs will be ignored. If user external ID, course external ID and activity external ID are added as parameters, they will have priority and the UIDs will be ignored. If UIDs are added as parameters, they will only be considered if user external ID, course external ID and activity external ID aren't included (as a parameter or as a path) in the call.<br/>Example: /getResults?userUID=example&courseUID=example&activityUID=example","operationId":"getActivityResults","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/ActivityID"},{"$ref":"#/parameters/UserUID"},{"$ref":"#/parameters/CourseUID"},{"$ref":"#/parameters/ActivityUID"},{"name":"asStudent","in":"query","type":"string","enum":[true,false],"default":false,"description":"indicates if the results should contain only the results the user is allowed to see (meaning only the active course activities and those only if the settings of the activity allow it (\"Feedback type\")"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/PartResult"}},"404":{"description":"no user and/or course and/or activity exists with the specified ID, or the user is not subscribed to the course"}}}},"/scoreExternalActivity/{userID}/{courseID}/{activityID}":{"post":{"tags":["subscriptions"],"summary":"Score external activity","description":"This can be used to to score an external activity for a specific student. <br/> <br/> **Note:** If user external ID, course external ID and activity external ID are added as path components, they will have priority and all other IDs will be ignored. If user external ID, course external ID and activity external ID are added as parameters, they will have priority and the UIDs will be ignored. If UIDs are added as parameters, they will only be considered if user external ID, course external ID and activity external ID aren't included (as a parameter or as a path) in the call.<br/>Example: /scoreExternalActivity&userUID=example&courseUID=example&activityUID=example","operationId":"scoreExternalActivity","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/ActivityID"},{"$ref":"#/parameters/UserUID"},{"$ref":"#/parameters/CourseUID"},{"$ref":"#/parameters/ActivityUID"},{"name":"score","in":"formData","type":"number","required":true,"description":"the score of the external activity for the specified student (with an optional decimal point)"}],"responses":{"200":{"description":"success"},"404":{"description":"if no user and/or course and/or activity exists with the specified ID, or the user is not subscribed to the course"}}}},"/groupExists/{groupID}":{"get":{"tags":["groups"],"summary":"Check if group exists","description":"This can be used to check if a certain user group exists in the learning environment.","operationId":"groupExists","parameters":[{"$ref":"#/parameters/GroupID"}],"produces":["application/json","application/xml","text/plain"],"responses":{"200":{"$ref":"#/responses/Boolean"}}}},"/getUserGroups/{userID}":{"get":{"tags":["groups"],"summary":"Get all groups a user is in","description":"This can be used to obtain all groups a user is present in. <br/> <br/> **Note:** If a user external ID is added as a path component, that will have priority and all other IDs will be ignored. If a user external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if a user external ID isn't included (as a parameter or as a path) in the call.<br/>Example: /getUserGroups?userUID=example <br/> **Note:** In the API we use old role terms. With student we mean learner, with teacher we mean instructor and with mentor we mean observer.","operationId":"getUserGroups","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"name":"type","in":"query","type":"string","enum":["Student","Teacher","Mentor"],"required":false}],"produces":["application/json","application/xml","text/plain"],"responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/userGroup"}},"404":{"description":"No user exists with the specified ID / UID"},"400":{"description":"Invalid group type"}}}},"/addGroup/{groupID}":{"post":{"tags":["groups"],"summary":"Add group","description":"This can be used to add a new user group to the learning environment. <br/> **Note:** In the API we use old role terms. With student we mean learner, with teacher we mean instructor and with mentor we mean observer.","operationId":"addGroup","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/GroupID"},{"name":"type","in":"formData","type":"string","enum":["Student","Teacher","Mentor"],"required":true},{"name":"name","in":"formData","type":"string","required":true},{"$ref":"#/parameters/ParentID"}],"responses":{"200":{"description":"success"},"404":{"description":"no group exists with the specified parent ID"},"409":{"description":"a group already exists with the specified ID or the specified parent group is the group itself"}}}},"/updateGroup/{groupID}":{"post":{"tags":["groups"],"summary":"Update group","description":"This can be used to update an existing group.","operationId":"updateGroup","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/GroupID"},{"name":"name","in":"formData","type":"string"},{"$ref":"#/parameters/ParentID"}],"responses":{"200":{"description":"success"},"404":{"description":"no group exists with the specified parent ID"},"409":{"description":"the specified parent group is the group itself"}}}},"/groupUserExists/{groupID}/{userID}":{"get":{"tags":["groups"],"summary":"Check if user is member of group","description":"This can be used to check if a certain user is a member of a certain group. <br/> <br/> **Note:** If a user external ID is added as a path component, that will have priority and all other IDs will be ignored. If a user external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if a user external ID isn't included (as a parameter or as a path) in the call.<br/>Example: /groupUserExists?groupID=example&userUID=example","operationId":"groupUserExists","parameters":[{"$ref":"#/parameters/GroupID"},{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"}],"produces":["application/json","application/xml","text/plain"],"responses":{"200":{"$ref":"#/responses/Boolean"},"404":{"description":"no group and/or user exists with the specified ID"}}}},"/getGroupUsers/{groupID}":{"get":{"tags":["groups"],"summary":"Get members of group","description":"This can be used to obtain the members of the specified group.","operationId":"getGroupUsers","parameters":[{"$ref":"#/parameters/GroupID"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"properties":{"users":{"type":"array","items":{"$ref":"#/definitions/UserCore"},"xml":{"wrapped":true}}}}},"404":{"description":"no group exists with the specified ID"}}}},"/addGroupUsers/{groupID}":{"post":{"tags":["groups"],"summary":"Add group users","description":"This can be used to add users to an existing user group.","operationId":"addGroupUsers","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/GroupID"},{"name":"user","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the user, this parameter can occur multiple times"},{"name":"userUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the user, this parameter can occur multiple times. 36 characters required."},{"name":"addToTeacherStudents","in":"formData","type":"string","enum":[true,false],"default":true,"description":"add the student(s) to the 'My Students' list of the teacher(s)"},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore users who are already in the group"},{"name":"notify","in":"formData","type":"string","enum":[true,false],"default":false,"description":"send an email to the student to notify them of the new subscription(s)"}],"responses":{"200":{"description":"success"},"404":{"description":"no group exists with the specified ID, or no user exists with the specified external ID or UID"},"409":{"description":"a user does not have the correct role for the type of the group or a user is already in the group (and **ignoreDuplicates** is **false**)"}}}},"/deleteGroupUsers/{groupID}":{"post":{"tags":["groups"],"summary":"Delete group users","description":"This can be used to remove users from an existing user group.","operationId":"deleteGroupUsers","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/GroupID"},{"name":"user","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the user, this parameter can occur multiple times"},{"name":"userUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the user, this parameter can occur multiple times. 36 characters required."},{"name":"ignoreMissing","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore users who do not exist or are not in the group"}],"responses":{"200":{"description":"success"},"404":{"description":"no group exists with the specified ID or a user does not exist with the specified ID (and **ignoreMissing** is **false**)"},"409":{"description":"a user is not in the group (and **ignoreMissing** is **false**)"}}}},"/deleteGroup/{groupID}":{"post":{"tags":["groups"],"summary":"Delete group","description":"This can be used to remove an existing group ","operationId":"deleteGroup","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/GroupID"},{"name":"force","in":"formData","type":"string","enum":[true,false],"default":false,"description":"remove the group even if there are users present"}],"responses":{"200":{"description":"success"},"404":{"description":"no group exists with the specified ID"},"409":{"description":"the group is still in use (and **force** is **false**)"}}}},"/getResellerSkillProfiles/{resellerID}":{"get":{"tags":["resellers"],"summary":"Get reseller skill profiles","description":"This can be used to obtain all the skill profiles linked to the reseller","operationId":"getResellerSkillProfiles","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/ResellerID"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"properties":{"skillProfiles":{"type":"array","items":{"$ref":"#/definitions/SkillProfile"},"xml":{"wrapped":true}}}}},"404":{"description":"no reseller exists with the specified ID"}}}},"/addResellerBookableEvents/{resellerID}":{"post":{"tags":["resellers"],"summary":"Add reseller events","description":"This can be used to add events to an existing reseller.","operationId":"addResellerBookableEvents","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/ResellerID"},{"name":"event","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the event, this parameter can occur multiple times"},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore events that are already linked to the reseller"}],"responses":{"200":{"description":"success"},"404":{"description":"no reseller exists with the specified ID or the event parameter is missing"},"409":{"description":"an event is already linked to the reseller (and **ignoreDuplicates** is **false**)"}}}},"/addResellerGroups/{resellerID}":{"post":{"tags":["resellers"],"summary":"Add reseller groups","description":"This can be used to add groups to an existing reseller.","operationId":"addResellerGroups","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/ResellerID"},{"name":"group","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the group, this parameter can occur multiple times"},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore groups that are already linked to the reseller"}],"responses":{"200":{"description":"success"},"404":{"description":"no reseller exists with the specified ID or the group parameter is missing"},"409":{"description":"a group is already linked to the reseller (and **ignoreDuplicates** is **false**)"}}}},"/addResellerTemplates/{resellerID}":{"post":{"tags":["resellers"],"summary":"Add reseller templates","description":"This can be used to add templates to an existing reseller.","operationId":"addResellerTemplates","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/ResellerID"},{"name":"template","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the template, this parameter can occur multiple times"},{"name":"templateUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the template, this parameter can occur multiple times. 36 characters required."},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore templates that are already linked to the reseller"}],"responses":{"200":{"description":"success"},"404":{"description":"no reseller exists with the specified ID or the template/templateUID parameter is missing"},"409":{"description":"a template is already linked to the reseller (and **ignoreDuplicates** is **false**)"}}}},"/addResellerUsers/{resellerID}":{"post":{"tags":["resellers"],"summary":"Add reseller users","description":"This can be used to add users to an existing reseller.","operationId":"addResellerUsers","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/ResellerID"},{"name":"user","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the user, this parameter can occur multiple times"},{"name":"userUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the user, this parameter can occur multiple times. 36 characters required."},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore users who are already linked to the reseller"}],"responses":{"200":{"description":"success"},"404":{"description":"no reseller exists with the specified ID or the user/userUID parameter is missing"},"409":{"description":"a user is already linked to the reseller (and **ignoreDuplicates** is **false**)"}}}},"/deleteResellerBookableEvents/{resellerID}":{"post":{"tags":["resellers"],"summary":"Remove events from a reseller","description":"This can be used to remove events from an existing reseller.","operationId":"deleteResellerBookableEvents","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/ResellerID"},{"name":"event","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the event, this parameter can occur multiple times"},{"name":"ignoreMissing","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore events that do not exist or are not linked to the reseller"}],"responses":{"200":{"description":"success"},"404":{"description":"no reseller exists with the specified ID or an event does not exist with the specified ID or the event parameter is missing (and **ignoreMissing** is **false**)"},"409":{"description":"an event is not linked to the reseller (and **ignoreMissing** is **false**)"}}}},"/deleteResellerGroups/{resellerID}":{"post":{"tags":["resellers"],"summary":"Remove groups from a reseller","description":"This can be used to remove groups from an existing reseller.","operationId":"deleteResellerGroups","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/ResellerID"},{"name":"group","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the group, this parameter can occur multiple times"},{"name":"ignoreMissing","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore groups that do not exist or are not linked to the reseller"}],"responses":{"200":{"description":"success"},"404":{"description":"no reseller exists with the specified ID or a group does not exist with the specified ID or the group parameter is missing (and **ignoreMissing** is **false**)"},"409":{"description":"a group is not linked to the reseller (and **ignoreMissing** is **false**)"}}}},"/deleteResellerTemplates/{resellerID}":{"post":{"tags":["resellers"],"summary":"Remove templates from a reseller","description":"This can be used to remove templates from an existing reseller.","operationId":"deleteResellerTemplates","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/ResellerID"},{"name":"template","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the template, this parameter can occur multiple times"},{"name":"templateUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the template, this parameter can occur multiple times. 36 characters required."},{"name":"ignoreMissing","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore templates that do not exist or are not linked to the reseller"}],"responses":{"200":{"description":"success"},"404":{"description":"no reseller exists with the specified ID or a template does not exist with the specified ID or the template/templateUID parameter is missing (and **ignoreMissing** is **false**)"},"409":{"description":"a template is not linked to the reseller (and **ignoreMissing** is **false**)"}}}},"/deleteResellerUsers/{resellerID}":{"post":{"tags":["resellers"],"summary":"Remove users from a reseller","description":"This can be used to remove users from an existing reseller.","operationId":"deleteResellerUsers","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/ResellerID"},{"name":"user","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the user, this parameter can occur multiple times"},{"name":"userUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the user, this parameter can occur multiple times. 36 characters required."},{"name":"ignoreMissing","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore users who do not exist or are not linked to the reseller"}],"responses":{"200":{"description":"success"},"404":{"description":"no reseller exists with the specified ID or a user does not exist with the specified ID or the user/userUID parameter is missing (and **ignoreMissing** is **false**)"},"409":{"description":"a user is not linked to the reseller (and **ignoreMissing** is **false**)"}}}},"/getTemplates":{"get":{"tags":["courses"],"summary":"Get templates","description":"This can be used to obtain all course templates that are published (i.e. all templates for which an instance can be created via the API).","parameters":[{"name":"includeWithoutId","in":"query","type":"string","enum":[true,false],"default":false,"description":"include templates without an external ID"},{"name":"includeCourses","in":"query","type":"string","enum":[true,false],"default":false,"description":"include the (active) course instances of the templates"}],"operationId":"getTemplates","produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"properties":{"templates":{"type":"array","items":{"$ref":"#/definitions/Template"},"xml":{"wrapped":true}}}}}}}},"/getCourses/{templateID}":{"get":{"tags":["courses"],"summary":"Get courses","description":"This can be used to obtain all course instances for a specific course templates that have an external ID (i.e. all instances that can be manipulated via the API). .<br/><br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /getCourses?templateUID=example <br/> **Note:** In the API we use old role terms. With student we mean learner, with teacher we mean instructor and with mentor we mean observer.","operationId":"getCourses","parameters":[{"$ref":"#/parameters/TemplateID"},{"$ref":"#/parameters/TemplateUID"},{"name":"includeWithoutId","in":"query","type":"string","enum":[true,false],"default":false,"description":"Include courses without an external ID"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"properties":{"courses":{"type":"array","items":{"$ref":"#/definitions/Course"},"xml":{"wrapped":true}}}}}}}},"/getCourseStructure/{ID}":{"get":{"tags":["courses"],"summary":"Get course structure","description":"This can be used to obtain the detailed structure of the specified course (template or course). .<br/><br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /getCourseStructure?UID=example","operationId":"getCourseStructure","parameters":[{"$ref":"#/parameters/ID"},{"$ref":"#/parameters/UID"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/CourseStructure"}}}}},"/courseExists/{ID}":{"get":{"tags":["courses"],"summary":"Check if course exists","description":"This can be used to check if a certain course exists in the learning environment.<br/><br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /courseExists?UID=example","operationId":"courseExists","parameters":[{"$ref":"#/parameters/ID"},{"$ref":"#/parameters/UID"}],"produces":["application/json","application/xml","text/plain"],"responses":{"200":{"$ref":"#/responses/Boolean"}}}},"/getCourse/{ID}":{"get":{"tags":["courses"],"summary":"Get course","description":"This can be used to obtain the details of the specified course (template). It is a subset of all available details.<br/><br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /getCourse?UID=example <br/> **Note:** In the API we use old role terms. With student we mean learner, with teacher we mean instructor and with mentor we mean observer.","operationId":"getCourse","parameters":[{"$ref":"#/parameters/ID"},{"$ref":"#/parameters/UID"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/Course"}}}}},"/getBundles":{"get":{"tags":["bundles"],"summary":"Get bundles","operationId":"getBundles","description":"Lists existing bundle templates data.","parameters":[{"name":"includeWithoutId","in":"query","type":"string","enum":[true,false],"default":false,"description":"include templates without an external ID"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"properties":{"bundleTemplates":{"type":"array","items":{"$ref":"#/definitions/bundleTemplate"},"xml":{"wrapped":true}}}}},"404":{"description":"Command not found"}}}},"/getBundleCourses/{bundleID}":{"get":{"tags":["bundles"],"summary":"Get bundle instances","description":"Lists existing bundle instances for a given bundle template.<br/><br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /getBundleCourses?bundleUID=example","operationId":"getBundleCourses/{bundleID}","parameters":[{"name":"bundleID","in":"path","type":"string","required":true,"description":" the ID of the bundle template in the external system, which is shown as external ID in the platform"},{"name":"bundleID","in":"query","type":"string","required":false,"description":" the ID of the bundle template in the external system, which is shown as external ID in the platform"},{"name":"bundleUID","in":"query","type":"string","required":false,"description":"the UID (formatted as UUID) of the bundle template in the platform. 36 characters required."}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"properties":{"bundles":{"type":"array","items":{"$ref":"#/definitions/bundle"},"xml":{"wrapped":true}}}}},"404":{"description":"Command not found"}}}},"/getBundleCourseSubscriptions/{userID}/{bundleCourseID}":{"get":{"tags":["bundles"],"summary":"Returns bundle subscription details","description":"Returns bundle subscription details","operationId":"getBundleCourseSubscriptions/{userID}/{bundleCourseID}","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"$ref":"#/parameters/BundleCourseID"},{"$ref":"#/parameters/BundleCourseUID"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/bundleCourseStatistic"}},"404":{"description":"Command not found"}}}},"/getBundleCourseSubscriptions/{userID}":{"get":{"tags":["bundles"],"summary":"Returns bundle subscription details","description":"Returns bundle subscriptions details for user","operationId":"getBundleCourseSubscriptions/{userID}","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"type":"array","items":{"$ref":"#/definitions/bundleCourseStatistic"},"xml":{"wrapped":true}}},"404":{"description":"Command not found"}}}},"/subscribeBundle/{userID}/{bundleCourseID}":{"post":{"tags":["bundles"],"summary":"Subscribe bundle","operationId":"subscribeBundle/{userID}/{bundleCourseID}","description":"This can be used to enroll an existing student (a user having the student role) in an existing course bundle in the learning environment. <br/><br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call. If you want to provide bundleCourseID in path you also should provide userID in the path<br/>Example: /subscribeBundle?bundleCourseUID=example1&userUID=example2","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"$ref":"#/parameters/BundleCourseID"},{"$ref":"#/parameters/BundleCourseUID"},{"name":"notify","in":"query","type":"string","enum":[true,false],"default":false,"description":"send an email to the students to notify them of the subscription(s)"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success"},"404":{"description":"Command not found"},"409":{"description":"The user does not have the learner role"}}}},"/subscribeGroupBundleCourse/{bundleCourseID}/{learnerGroupID}":{"post":{"tags":["bundles"],"summary":"Subscribe learner group(s) to bundle","description":"This can be used to add existing learner groups to an existing bundle course. <br/><br/> **Note:** If a bundle course’s external ID is added ad a path component, then that will have priority and all other ID’s will be ignored. If a bundle course’s external ID is added as a parameter, then that will have priority and the UID will be ignored. If a UID is added ad a parameter, then it will only be considered if a bundle course’s external ID isn’t included (as a parameter or as a path) in the call.<br/>Example: /subscribeGroupBundleCourse?bundleCourseUID=example&learnerGroupID=example","operationId":"subscribeGroupBundleCourse","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/BundleCourseID"},{"$ref":"#/parameters/BundleCourseUID"},{"name":"<b> learnerGroupID </b>","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the external ID of the group, this parameter can occur multiple times"},{"name":"reseller","in":"formData","type":"string","description":"the external ID of the reseller that should be linked to this enrolment; if not present, the reseller that is linked to the domain on which the API is called, is used, or otherwise the reseller that is marked as default reseller"},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore groups that are already in the bundle course"},{"name":"notify","in":"formData","type":"string","enum":[true,false],"default":false,"description":"send an email to the students to notify them of the subscription(s)"}],"responses":{"200":{"description":"success"},"404":{"description":"* Bundle course does not exist. \n* Some student groups do not exist."},"409":{"description":"* Some groups are not a student group. \n* There are no sufficient licences. \n*  Bundle feature is not available for the current reseller."}}}},"/unsubscribeBundle/{userID}/{bundleCourseID}":{"post":{"tags":["bundles"],"summary":"Unsubscribe bundle","operationId":"unsubscribeBundle/{userID}/{bundleCourseID}","description":"This can be used to enroll an existing student (a user having the student role) in an existing course bundle in the learning environment. <br/><br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call. If you want to provide bundleCourseID in path you also should provide userID in the path<br/>Example: /unsubscribeBundle?bundleCourseUID=example1&userUID=example2","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"$ref":"#/parameters/BundleCourseID"},{"$ref":"#/parameters/BundleCourseUID"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success"},"404":{"description":"Command not found"}}}},"/getStudentSubscriptions/{courseID}":{"get":{"tags":["courses"],"summary":"Get subscriptions for course","description":"This can be used to obtain the subscriptions of the specified course.<br/> <br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /getStudentSubscriptions?courseUID=example","operationId":"getStudentSubscriptions","parameters":[{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/CourseUID"},{"name":"skipStats","in":"query","type":"string","enum":[true,false],"default":false,"description":"don't calculate statistics (progress, knowledgeIntake, efficiency, objectivesProgress) for performance"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"properties":{"students":{"type":"array","items":{"$ref":"#/definitions/StudentSubscription"},"xml":{"wrapped":true}}}}},"404":{"description":"no course exists with the specified ID"}}}},"/getStudentTeachers/{studentID}/{courseID}":{"get":{"tags":["courses"],"summary":"Get teachers for student in the context of a course","description":"This can be used to obtain the teachers of the specified user and course.<br/> <br/> **Note:** If student external ID and course external ID are added as path components, that will have priority and all other IDs will be ignored. If student external ID and course external ID are added as parameters, that will have priority and the UIDs will be ignored. If student UID and course UID are added as parameters, they will only be considered if there are no external IDs included (as parameters or as path) in the call.<br/>Example: /getStudentTeachers?studentUID=example&courseUID=example ","parameters":[{"$ref":"#/parameters/StudentID"},{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/StudentUID"},{"$ref":"#/parameters/CourseUID"},{"name":"excludeTeacherGroups","in":"query","type":"string","enum":[true,false],"default":false,"description":"Exclude teachers that are linked to student via a group only"}],"produces":["application/json","application/xml","text/plain"],"responses":{"200":{"description":"success","schema":{"properties":{"users":{"type":"array","items":{"$ref":"#/definitions/UserCore"},"xml":{"wrapped":true}}}}},"404":{"description":"no user and/or course exists with the specified ID"}}}},"/getStudentGroupTeachers/{courseID}/{groupID}":{"get":{"tags":["courses"],"summary":"Get teachers for student group in the context of a course","description":"This can be used to obtain the teachers of the specified student group and course.<br/> <br/> **Note:** If course external ID is added as path component, that will have priority and all other IDs will be ignored. If course external ID is added as parameter, it will have priority and the course UID will be ignored. If course UID is added as parameter, it will only be considered if there is no external course ID included (as parameter or as path) in the call.<br/>Example: /getStudentGroupTeachers?courseUID=example&groupID=example","parameters":[{"$ref":"#/parameters/GroupID"},{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/CourseUID"}],"produces":["application/json","application/xml","text/plain"],"responses":{"200":{"description":"success","schema":{"properties":{"users":{"type":"array","items":{"$ref":"#/definitions/UserCore"},"xml":{"wrapped":true}}}}},"404":{"description":"no group and/or course exists with the specified ID"}}}},"/getTeacherStudents/{teacherID}/{courseID}":{"get":{"tags":["courses"],"summary":"Get students for teacher in the context of a course","description":"This can be used to obtain the students of the specified teacher and course. <br/> <br/> **Note:** If teacher external ID and course external ID are added as path components, that will have priority and all other IDs will be ignored. If teacher external ID and course external ID are added as parameters, that will have priority and the UIDs will be ignored. If teacher UID and course UID are added as parameters, they will only be considered if there are no external IDs included (as parameters or as path) in the call. <br/>Example: /getTeacherStudents?teacherUID=example&courseUID=example ","parameters":[{"$ref":"#/parameters/TeacherID"},{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/TeacherUID"},{"$ref":"#/parameters/CourseUID"}],"produces":["application/json","application/xml","text/plain"],"responses":{"200":{"description":"success","schema":{"properties":{"users":{"type":"array","items":{"$ref":"#/definitions/UserCore"},"xml":{"wrapped":true}}}}},"404":{"description":"no user and/or course exists with the specified ID"}}}},"/instantiate/{templateID}/{courseID}":{"post":{"tags":["courses"],"summary":"Create course instance","description":"This can be used to create a new instance of an existing course template in the learning environment.<br/> <br/> **Note:** If template external ID and course external ID are added as a path components, that will have priority and all other IDs will be ignored. If template external ID and course external ID are added as parameters, that will have priority and the UIDs will be ignored. If template UID and course UID are added as parameters, they will only be considered if there are no external IDs included (as parameters or as path) in the call.<br/>Example: /instantiate?templateUID=example&courseID=example ","operationId":"instantiate","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/TemplateID"},{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/TemplateUID"},{"$ref":"#/parameters/Name"},{"$ref":"#/parameters/Title"},{"$ref":"#/parameters/Description"},{"name":"reseller","in":"formData","type":"string","description":"the external ID of the reseller that should be linked to this instance; if not present, the reseller that is linked to the domain on which the API is called, is used, or otherwise the reseller that is marked as default reseller"},{"name":"resellerName","in":"formData","type":"string","description":"**DEPRECATED** the name of the reseller that should be linked to this instance; if not present, the reseller that is linked to the domain on which the API is called, is used, or otherwise the reseller that is marked as default reseller"},{"name":"teacherGroup","in":"formData","type":"string","description":"the external ID of the instructor group that should be linked to this instance (the term \"teacher\" is used for instructors)"},{"name":"mentorGroup","in":"formData","type":"string","description":"the external ID of the observer group that should be linked to this instance (the term \"mentor\" is used for observers)"},{"name":"startDate","in":"formData","type":"string","format":"date","description":"**yyyy-MM-dd**, date from which the course is available to students"},{"name":"expireDate","in":"formData","type":"string","format":"date","description":"**yyyy-MM-dd**, date on which the course will expire for the students (mutually exclusive with **expireInterval**)"},{"name":"expireInterval","in":"formData","type":"string","description":"**1 year**/**3 months**/etc., period from the first use after which the course will expire for the students (mutually exclusive with **expireDate**)"},{"name":"copyTags","in":"formData","type":"boolean","default":false,"description":"if true, copies the tags from the template to the new course instance"}],"responses":{"200":{"description":"success"},"404":{"description":"no template, reseller, instructor group and/or observer group exists with the specified ID/name (the terms \"teacher\" and \"mentor\" are used for instructors and observers, accordingly)"},"409":{"description":"the template is not a template or not published, the course ID or name already exists, or the group ID belongs to a group of the wrong type"},"500":{"description":"an unexpected error occurred; when copyTags is true, this may indicate that tag copying failed (the course may have been created already — retry without copyTags and add tags manually)"}}}},"/initializeCourseId/{UID}/{ID}":{"post":{"tags":["courses"],"summary":"Initialize course ID","description":"This can be used to set the ID of an existing course.","operationId":"initializeCourseId","consumes":["application/x-www-form-urlencoded"],"parameters":[{"name":"UID","in":"path","type":"string","required":true,"description":"the UID in the platform. 36 characters required."},{"$ref":"#/parameters/ID"}],"responses":{"200":{"description":"success"},"404":{"description":"no course exists with the specified uid"},"409":{"description":"the ID is already in use, course already has an ID"}}}},"/updateCourse/{ID}":{"post":{"tags":["courses"],"summary":"Update course instance","description":"This can be used to update an existing course instance in the learning environment.<br/><br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /updateCourse?UID=example","operationId":"updateCourse","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/ID"},{"$ref":"#/parameters/UID"},{"$ref":"#/parameters/Name"},{"$ref":"#/parameters/Title"},{"$ref":"#/parameters/Description"},{"name":"teacherGroup","in":"formData","type":"string","description":"the external ID of the instructor group that should be linked to this instance (the term \"teacher\" is used for instructors)"},{"name":"mentorGroup","in":"formData","type":"string","description":"the external ID of the observer group that should be linked to this instance (the term \"mentor\" is used for observers)"},{"name":"startDate","in":"formData","type":"string","format":"date","description":"**yyyy-MM-dd**, date from which the course is available to students"},{"name":"expireDate","in":"formData","type":"string","format":"date","description":"**yyyy-MM-dd**, date on which the course will expire for the students (mutually exclusive with **expireInterval**)"},{"name":"expireInterval","in":"formData","type":"string","description":"**1 year**/**3 months**/etc., period from the first use after which the course will expire for the students (mutually exclusive with **expireDate**)"}],"responses":{"200":{"description":"success"},"404":{"description":"no course, instructor group and/or observer group exists with the specified ID (the terms \"teacher\" and \"mentor\" are used for instructors and observers, accordingly)"},"409":{"description":"the course name already exists, the group ID belongs to a group of the wrong type, or an instructor or observer group has already been set for the course (the terms \"teacher\" and \"mentor\" are used for instructors and observers, accordingly)"}}}},"/setCoursePermissions/{courseID}/{teacherID}":{"post":{"tags":["courses"],"summary":"Set course permissions","description":"This can be used to set the course permissions for a specific teacher. <br/> <br/> **Note:** If course external ID and teacher external ID are added as a path components, that will have priority and all other IDs will be ignored. If course external ID and teacher external ID are added as parameters, that will have priority and the UIDs will be ignored. If course UID and teacher UID are added as parameters, they will only be considered if there are no external IDs included (as parameters or as path) in the call.<br/>Example: /setCoursePermissions?teacherUID=example&courseUID=example ","operationId":"setCoursePermissions","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/TeacherID"},{"$ref":"#/parameters/CourseUID"},{"$ref":"#/parameters/TeacherUID"},{"name":"permission","in":"formData","type":"array","items":{"type":"string"},"enum":["CourseSettings","EditCalendar","EditTeacherStudents","ReceiveStudentMessage","ReceiveCoursePartNotification","AssessorPossible"],"collectionFormat":"multi","required":true,"description":"the name of the permission, this parameter can occur multiple times"},{"name":"unset","in":"formData","type":"string","enum":[true,false],"default":false,"description":"unset the specified permission(s) instead of set"}],"responses":{"200":{"description":"success"},"404":{"description":"no course and/or teacher and/or permission exists with the specified ID (or name in the case of permission)"}}}},"/setCoursePermissionsForTeacherGroup/{groupID}":{"post":{"tags":["courses"],"summary":"Set course permissions for teacher group","description":"This can be used to set the course permissions for all teachers in a specific teacher group.","operationId":"setCoursePermissionsForTeacherGroup","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/GroupID"},{"name":"permission","in":"formData","type":"array","items":{"type":"string"},"enum":["CourseSettings","EditCalendar","EditTeacherStudents","ReceiveStudentMessage","ReceiveCoursePartNotification","AssessorPossible"],"collectionFormat":"multi","required":true,"description":"the name of the permission, this parameter can occur multiple times"},{"name":"unset","in":"formData","type":"string","enum":[true,false],"default":false,"description":"unset the specified permission(s) instead of set"}],"responses":{"200":{"description":"success"},"404":{"description":"no teacher group and/or permission exists with the specified ID (or name in the case of permission)"}}}},"/setActivityPermissions/{courseID}/{activityID}/{teacherID}":{"post":{"tags":["courses"],"summary":"Set activity permissions","description":"This can be used to set the course activity permissions for a specific teacher. <br><br>**Note:** If course external ID, activity external ID and teacher external ID are added as a path components, that will have priority and all other IDs will be ignored. If course external ID, activity external ID and teacher external ID are added as parameters, that will have priority and the UIDs will be ignored. If course UID, activity UID and teacher UID are added as parameters, they will only be considered if there are no external IDs included (as parameters or as path) in the call.<br/>Example: /setActivityPermissions?courseUID=example&activityUID=example&teacherUID=example","operationId":"setActivityPermissions","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/ActivityID"},{"$ref":"#/parameters/TeacherID"},{"$ref":"#/parameters/CourseUID"},{"$ref":"#/parameters/ActivityUID"},{"$ref":"#/parameters/TeacherUID"},{"name":"permission","in":"formData","type":"array","items":{"type":"string"},"enum":["Assess"],"collectionFormat":"multi","required":true,"description":"the name of the permission, this parameter can occur multiple times"},{"name":"unset","in":"formData","type":"string","enum":[true,false],"default":false,"description":"unset the specified permission(s) instead of set"}],"responses":{"200":{"description":"success"},"404":{"description":"no course and/or activity and/or teacher and/or permission exists with the specified ID (or name in the case of permission)"}}}},"/addTeacherStudents/{courseID}/{teacherID}":{"post":{"tags":["courses"],"summary":"Add teacher students","description":"This can be used to add students to the 'My Students' list of a teacher of a course. <br/> <br/> **Note:** If course external ID and teacher external ID are added as a path components, that will have priority and all other IDs will be ignored. If course external ID and teacher external ID are added as parameters, that will have priority and the UIDs will be ignored. If course UID and teacher UID are added as parameters, they will only be considered if there are no external IDs included (as parameters or as path) in the call.<br/>Example: /addTeacherStudents&teacherUID=example&courseUID=example&studentUID=example","operationId":"addTeacherStudents","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/TeacherID"},{"$ref":"#/parameters/CourseUID"},{"$ref":"#/parameters/TeacherUID"},{"name":"student","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the student, this parameter can occur multiple times"},{"name":"studentUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the user, this parameter can occur multiple times. 36 characters required."},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore students who are already on the 'My Students' list of the specified teacher of the course"}],"responses":{"200":{"description":"success"},"404":{"description":"no teacher and/or course and/or student exists with the specified ID, or the student is not enrolled in the specified course, or the student/studentUID parameters are not present"},"409":{"description":"a student is already on the 'My Students' list of the teacher of the course (and **ignoreDuplicates** is **false**)"}}}},"/addStudentGroupTeachers/{courseID}/{groupID}":{"post":{"tags":["courses"],"summary":"Add student group teachers","description":"This can be used to link a single or multiple teachers to a student group within a course. <br/> <br/> **Note:** If course external ID and group external ID are added as a path components, that will have priority and all other IDs will be ignored. If course external ID and group external ID are added as parameters, that will have priority and the UIDs will be ignored. If course UID is added as parameter, it will only be considered if there are no external IDs included (as parameters or as path) in the call.\"","operationId":"addStudentGroupTeachers","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/CourseUID"},{"name":"studentGroupID","in":"path","type":"string","required":true,"description":"the ID of the student group in the platform"},{"name":"teacherID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":false,"description":"the external ID of the teacher, this parameter can occur multiple times"},{"name":"teacherUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the teacher, this parameter can occur multiple times. 36 characters required."},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore any teachers which are already linked with the given student group"}],"responses":{"200":{"description":"success"},"404":{"description":"* no teacher and/or course and/or student group exists with the specified ID \n* the instructor is not linked to the specified course \n* the instructor /instructor UID parameters are not present \n"},"409":{"description":"a student group is already on the 'My Student Groups' list of the teacher of the course (and **ignoreDuplicates** is **false**)"}}}},"/setTeacherStudents/{teacherID}":{"post":{"tags":["courses"],"summary":"Set teacher students","description":"This can be used to link a single teacher to one or multiple students in their respectable courses. <br/> <br/> **Note:** This can be used to set the teacher for specific students for all courses that the student/s are linked to. (Teachers that are part of this call and aren’t set for the student/s will be linked. For teachers that are linked to the student but aren’t part of the call the links will be removed). If teacher External ID is added as a path component, that will have priority and the teacher UID will be ignored.","operationId":"setTeacherStudents","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/TeacherID"},{"$ref":"#/parameters/TeacherUID"},{"name":"studentID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":false,"description":"the external ID of the student, this parameter can occur multiple times"},{"name":"studentUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the student, this parameter can occur multiple times. 36 characters required."}],"responses":{"200":{"description":"success"},"404":{"description":"* No teacher exists with the specified ID/UID \n* Student ID or Student UID parameters are not present \n* Some of the student IDs or UIDs are referencing to nonexistent users \n"}}}},"/setStudentGroupTeachers/{groupID}":{"post":{"tags":["courses"],"summary":"Set student group teachers","description":"This can be used to link a single or multiple teachers to a student group in their respectable courses. <br/> <br/> **Note:** This can be used to set the teacher, or teachers, for a student group for all courses that the student group is linked to. (Teachers that are part of this call and aren’t set for the student group will be linked. For teachers that are linked to the student group but aren’t part of the call the links will be removed.)","operationId":"setStudentGroupTeachers","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/GroupID"},{"name":"teacherID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":false,"description":"the external ID of the teacher, this parameter can occur multiple times"},{"name":"teacherUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the teacher, this parameter can occur multiple times. 36 characters required."}],"responses":{"200":{"description":"success"},"404":{"description":"* No group exists with the specified ID \n* Teacher ID or teacher UID parameters are not present \n* Some of the teacher IDs or UIDs are referencing to nonexistent users \n"}}}},"/deleteTeacherStudents/{courseID}/{teacherID}":{"post":{"tags":["courses"],"summary":"Delete teacher students","description":"This can be used to remove students from the 'My Students' list of a teacher of a course. <br/> <br/> **Note:** If course external ID and teacher external ID are added as a path components, that will have priority and all other IDs will be ignored. If course external ID and teacher external ID are added as parameters, that will have priority and the UIDs will be ignored. If course UID and teacher UID are added as parameters, they will only be considered if there are no external IDs included (as parameters or as path) in the call.<br/>Example: /deleteTeacherStudents?teacherUID=example&courseUID=example&studentUID=example","operationId":"deleteStudentTeacher","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/TeacherID"},{"$ref":"#/parameters/CourseUID"},{"$ref":"#/parameters/TeacherUID"},{"name":"student","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the student, this parameter can occur multiple times"},{"name":"studentUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the user, this parameter can occur multiple times. 36 characters required."},{"name":"ignoreMissing","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore students who are not on the 'My Students' list of the specified teacher of the course"}],"responses":{"200":{"description":"success"},"404":{"description":"no teacher and/or course and/or student exists with the specified ID, or the student is not enrolled in the specified course, or the student/studentUID parameters are not present"},"409":{"description":"a student is not on the 'My Students' list of the teacher of the course (and **ignoreMissing** is **false**)"}}}},"/deleteStudentGroupTeachers/{courseID}/{groupID}":{"post":{"tags":["courses"],"summary":"Delete student group teachers","description":"This can be used to unlink a single or multiple teachers from a student group within a course. <br/> <br/> **Note:** If course external ID and group external ID are added as a path components, that will have priority and all other IDs will be ignored. If course external ID and group external ID are added as parameters, that will have priority and the UIDs will be ignored. If course UID and group UID are added as parameters, they will only be considered if there are no external IDs included (as parameters or as path) in the call.","operationId":"deleteStudentGroupTeachers","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/CourseUID"},{"name":"studentGroupID","in":"path","type":"string","required":true,"description":"the ID of the student group in the platform"},{"name":"teacherID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":false,"description":"the external ID of the teacher, this parameter can occur multiple times"},{"name":"teacherUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the teacher, this parameter can occur multiple times. 36 characters required."},{"name":"ignoreMissing","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore any teachers which are not linked with the given student group"}],"responses":{"200":{"description":"success"},"404":{"description":"* no teacher and/or course and/or student group exists with the specified ID.\n* the instructor is not linked to the specified course.\n* the instructor /instructor UID parameters are not present (and **ignoreMissing** is **false**)"},"409":{"description":"the group is not a student group and/or it is not on the 'My Students' list of the teacher of the course"}}}},"/deleteCourse/{courseID}":{"post":{"tags":["courses"],"summary":"Delete course","description":"This can be used to remove an existing course. <br/><br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /deleteCourse?courseUID=example","operationId":"deleteCourse","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/CourseUID"},{"name":"force","in":"formData","type":"string","enum":[true,false],"default":false,"description":"remove the course even if there are active students present"}],"responses":{"200":{"description":"success"},"404":{"description":"no course exists with the specified ID"},"409":{"description":"the course is a template or there are still active students (and **force** is **false**) or there are bundle courses in which the course is used"}}}},"/deleteTemplate/{templateID}":{"post":{"tags":["courses"],"summary":"Delete template","description":"This can be used to remove an existing template. <br/><br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /deleteTemplate?templateUID=example","operationId":"deleteTemplate","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/TemplateID"},{"$ref":"#/parameters/TemplateUID"},{"name":"force","in":"formData","type":"string","enum":[true,false],"default":false,"description":"remove the template that is published, but does not have courses and is not used in bundles"}],"responses":{"200":{"description":"success"},"404":{"description":"no template exists with the specified ID"},"409":{"description":"there are still courses in the template (despite **force** is **true**) or there are bundles in which the template is used"}}}},"/copyTemplate/{templateID}/{ID}":{"post":{"tags":["courses"],"summary":"Copy template","description":"This can be used to copy an existing template.<br/><br/> **Note:** The template ID parameter can be replaced with the template UID. In order to do that, all path parameters should be sent as query parameters.<br/>Example: /copyTemmplate?templateUID=example&ID=example","operationId":"copyTemplate","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/TemplateID"},{"$ref":"#/parameters/TemplateUID"},{"$ref":"#/parameters/ID"},{"$ref":"#/parameters/Name"},{"$ref":"#/parameters/Title"},{"$ref":"#/parameters/Description"},{"name":"copyContent","in":"formData","type":"string","enum":[true,false],"default":false,"description":"use the same content in the new template"},{"name":"publish","in":"formData","type":"string","enum":[true,false],"default":false,"description":"publish the new template"}],"responses":{"200":{"description":"success"},"404":{"description":"no course exists with the specified ID"},"409":{"description":"the course isn't a template, the new ID isn't unique or the new name isn't unique)"}}}},"/getEvents":{"get":{"tags":["events"],"summary":"Get all events","description":"This API call gets all events (exams and meetings) from the learning environment. Planned activities and blocks will not be retrieved.","operationId":"getEvents","produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"properties":{"events":{"type":"array","items":{"$ref":"#/definitions/Event"},"xml":{"wrapped":true}}}}}}}},"/eventExists/{UID}":{"get":{"tags":["events"],"summary":"Check if event exists","description":"This can be used to check if a certain calendar item exists in the learning environment.","operationId":"eventExists","parameters":[{"$ref":"#/parameters/CalendarUID"}],"produces":["application/json","application/xml","text/plain"],"responses":{"200":{"$ref":"#/responses/Boolean"}}}},"/addEvent/{courseID}/{UID}":{"post":{"tags":["events"],"summary":"Add event","description":"This can be used to add a new calendar item to an existing course instance in the learning environment. <br/> <br/> **Note:** If a course external ID is added as a path component, that will have priority and all other IDs will be ignored. If a course external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if a course external ID isn't included (as a parameter or as a path) in the call.<br/>Example: /addEvent?courseUID=example&UID=example","operationId":"addEvent","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/CalendarUID"},{"$ref":"#/parameters/CourseUID"},{"name":"type","in":"formData","type":"string","enum":["Meeting","Exam"],"required":true},{"name":"start","in":"formData","type":"string","format":"date-time","required":true,"description":"**yyyy-MM-ddTHH:mm:ssZ** (UTC time) or **yyyy-MM-ddTHH:mm:ss** (local time - deprecated)"},{"name":"end","in":"formData","type":"string","format":"date-time","required":true,"description":"**yyyy-MM-ddTHH:mm:ssZ** (UTC time) or **yyyy-MM-ddTHH:mm:ss** (local time - deprecated)"},{"name":"summary","in":"formData","type":"string","required":true},{"$ref":"#/parameters/EventDescription"},{"$ref":"#/parameters/EventLocation"},{"$ref":"#/parameters/EventNotify"},{"$ref":"#/parameters/EventDescription"}],"responses":{"200":{"description":"success"},"404":{"description":"no course exists with the specified ID"},"409":{"description":"the course is a template, the type of the course does not allow calendar items, or the UID already exists"}}}},"/updateEvent/{UID}":{"post":{"tags":["events"],"summary":"Update event","description":"This can be used to update an existing calendar item.","operationId":"updateEvent","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/CalendarUID"},{"name":"start","in":"formData","type":"string","format":"date-time","description":"**yyyy-MM-ddTHH:mm:ss**"},{"name":"end","in":"formData","type":"string","format":"date-time","description":"**yyyy-MM-ddTHH:mm:ss**"},{"name":"summary","in":"formData","type":"string"},{"$ref":"#/parameters/EventDescription"},{"$ref":"#/parameters/EventLocation"},{"$ref":"#/parameters/EventNotify"}],"responses":{"200":{"description":"success"},"404":{"description":"no calendar item exists with the specified UID"}}}},"/deleteEvent/{UID}":{"post":{"tags":["events"],"summary":"Delete event","description":"This can be used to remove an existing calendar item.","operationId":"deleteEvent","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/CalendarUID"},{"$ref":"#/parameters/EventNotify"}],"responses":{"200":{"description":"success"},"404":{"description":"no calendar item exists with the specified UID"}}}},"/deleteCourseEvents/{courseID}":{"post":{"tags":["events"],"summary":"Delete course events","description":"This can be used to remove all events for a specific course. No notifications will be sent to the students of the course. <br/> <br/> **Note:** If a course external ID is added as a path component, that will have priority and all other IDs will be ignored. If a course external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if a course external ID isn't included (as a parameter or as a path) in the call.<br/>Example: /deleteCourseEvents?courseUID=example","operationId":"deleteCourseEvents","parameters":[{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/CourseUID"}],"responses":{"200":{"description":"success"}}}},"/accessCodeGroupExists/{groupID}":{"get":{"tags":["accessCodes"],"summary":"Check if access code group exists","description":"This can be used to check if a certain access code group exists in the learning environment.","operationId":"accessCodeGroupExists","parameters":[{"$ref":"#/parameters/AccessCodeGroupID"}],"produces":["application/json","application/xml","text/plain"],"responses":{"200":{"$ref":"#/responses/Boolean"}}}},"/accessCodeExists/{groupID}/{userID}":{"get":{"tags":["accessCodes"],"summary":"Check if access code exists","description":"This can be used to check if an access code exists in an access code group for a specific user. <br/> <br/> **Note:** If a user external ID is added as a path component, that will have priority and all other IDs will be ignored. If a user external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if a user external ID isn't included (as a parameter or as a path) in the call.<br/>Example: /accessCodeExists?groupID=example&userUID=example","operationId":"accessCodeExists","parameters":[{"$ref":"#/parameters/AccessCodeGroupID"},{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"}],"produces":["application/json","application/xml","text/plain"],"responses":{"200":{"$ref":"#/responses/Boolean"}}}},"/addAccessCodeGroup/{groupID}":{"post":{"tags":["accessCodes"],"summary":"Add access code group","description":"This can be used to add a new access code group to the learning environment.","operationId":"addAccessCodeGroup","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/AccessCodeGroupID"},{"name":"name","in":"formData","type":"string","required":true},{"name":"reseller","in":"formData","type":"string","description":"the external ID of the reseller that should be linked to the access code group; if not present, the reseller that is linked to the domain on which the API is called, is used, or otherwise the reseller that is marked as default reseller"},{"name":"course","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the course the access code group should be linked to, this parameter can occur multiple times"},{"name":"courseUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the course the access code group should be linked to, this parameter can occur multiple times. 36 characters required."}],"responses":{"200":{"description":"success"},"404":{"description":"no reseller exists with the specified ID or one of the courses does not exist"},"409":{"description":"an access code group already exists with the specified ID, or with the specified name for the specified reseller"}}}},"/createAccessCodes/{groupID}":{"post":{"tags":["accessCodes"],"summary":"Create access codes","description":"This can be used to create access codes in an existing access code group.","operationId":"createAccessCodes","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/GroupID"},{"name":"count","in":"formData","type":"integer","required":true,"description":"the number of access codes to create"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"properties":{"accessCodes":{"type":"array","items":{"properties":{"code":{"type":"string","example":"RSDRW46DN9","xml":{"attribute":true}}}},"xml":{"wrapped":true}},"group":{"type":"string","xml":{"attribute":true}}}}},"404":{"description":"no access code group exists with the specified ID"}}}},"/addAccessCodes/{groupID}":{"post":{"tags":["accessCodes"],"summary":"Add access codes","description":"This can be used to add one or more (externally generated) access codes to an existing access code group.","operationId":"addAccessCodes","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/GroupID"},{"name":"code","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the access code to add, this parameter can occur multiple times. Can only contain word characters (letters, digits, underscores and hyphens, where a hyphen can't be the first) and should be between 3 and 10 characters long."}],"responses":{"200":{"description":"success"},"400":{"description":"one or more access codes are invalid"},"404":{"description":"no access code group exists with the specified ID"},"409":{"description":"one of the access codes already exists in the specified access code group"}}}},"/addAccessCode/{groupID}/{userID}":{"post":{"tags":["accessCodes"],"summary":"Add a (user-assigned) access code","description":"This can be used to add a (externally generated) access code assigned to a specific user to an existing access code group.<br/> <br/> **Note:** If a user external ID is added as a path component, that will have priority and all other IDs will be ignored. If a user external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if a user external ID isn't included (as a parameter or as a path) in the call.<br/>Example: /addAccessCode?groupID=example&userUID=example","operationId":"addAccessCode","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/GroupID"},{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"name":"code","in":"formData","type":"string","required":true,"description":"The access code to add. Can only contain word characters (letters, digits, underscores and hyphens, where a hyphen can't be the first) and should be between 3 and 10 characters long"}],"responses":{"200":{"description":"success"},"400":{"description":"the access code is empty or invalid"},"404":{"description":"no access code group exists with the specified ID"},"409":{"description":"the access code already exists in the specified access code group, an access code for the specified user already exists in the specified access code group or the specified user does not have the student role"}}}},"/deleteAccessCode/{code}":{"post":{"tags":["accessCodes"],"summary":"Delete access code","description":"This can be used to remove an existing access code.","operationId":"deleteAccessCode","parameters":[{"name":"code","in":"path","type":"string","required":true,"description":"the access code to remove"}],"responses":{"200":{"description":"success"},"404":{"description":"the specified access code does not exist"},"409":{"description":"there is an order for the specified access code"}}}},"/deleteAccessCodeGroup/{groupID}":{"post":{"tags":["accessCodes"],"summary":"Delete access code group","description":"This can be used to remove an existing access code group (and all it's access codes).","operationId":"deleteAccessCodeGroup","parameters":[{"$ref":"#/parameters/AccessCodeGroupID"}],"responses":{"200":{"description":"success"},"404":{"description":"the specified access code group does not exist"},"409":{"description":"one or more products exist for the specified access code group or there is an order for one of the access codes in the specified access code group"}}}},"/addBookableEvent/{eventID}":{"post":{"tags":["bookableEvents"],"summary":"Add event","description":"This can be used to add a new event","operationId":"addBookableEvent","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/BookableEventID"},{"name":"name","in":"formData","type":"string","required":true},{"$ref":"#/parameters/BookableEventDescription"},{"$ref":"#/parameters/BookableEventLocation"},{"$ref":"#/parameters/BookableEventStart"},{"$ref":"#/parameters/BookableEventEnd"},{"$ref":"#/parameters/TimeZoneGroup"},{"$ref":"#/parameters/TimeZone"},{"$ref":"#/parameters/BookableEventScoring"},{"$ref":"#/parameters/Grading"},{"$ref":"#/parameters/Threshold"},{"$ref":"#/parameters/BookableEventAttendance"},{"$ref":"#/parameters/MinimumParticipants"},{"$ref":"#/parameters/MaximumParticipants"},{"$ref":"#/parameters/BookableEventStatus"},{"$ref":"#/parameters/EnrollmentPossible"},{"$ref":"#/parameters/BookableEventReminder"},{"$ref":"#/parameters/BookableEventReminderInterval"},{"$ref":"#/parameters/BookableEventReminderNotes"}],"responses":{"200":{"description":"success"},"400":{"description":"Scoring and attendance cannot be used at the same time, Invalid event reminder interval"},"409":{"description":"An event with the specified ID already exists"}}}},"/updateBookableEvent/{eventID}":{"post":{"tags":["bookableEvents"],"summary":"Update event","description":"This can be used to update an existing event","operationId":"updateBookableEvent","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/BookableEventID"},{"name":"name","in":"formData","type":"string","required":true},{"$ref":"#/parameters/BookableEventDescription"},{"$ref":"#/parameters/BookableEventLocation"},{"$ref":"#/parameters/BookableEventStart"},{"$ref":"#/parameters/BookableEventEnd"},{"$ref":"#/parameters/TimeZoneGroup"},{"$ref":"#/parameters/TimeZone"},{"$ref":"#/parameters/BookableEventScoring"},{"$ref":"#/parameters/Grading"},{"$ref":"#/parameters/Threshold"},{"$ref":"#/parameters/MinimumParticipants"},{"$ref":"#/parameters/MaximumParticipants"},{"$ref":"#/parameters/BookableEventStatus"},{"$ref":"#/parameters/EnrollmentPossible"},{"$ref":"#/parameters/BookableEventReminder"},{"$ref":"#/parameters/BookableEventReminderInterval"},{"$ref":"#/parameters/BookableEventReminderNotes"}],"responses":{"200":{"description":"success"},"400":{"description":"Invalid event reminder interval"},"404":{"description":"Specified event wasn't found"}}}},"/addOrUpdateBookableEvent/{eventID}":{"post":{"tags":["bookableEvents"],"summary":"Add or update event","description":"This can be used to add or update an event, depending or whether the event already exists in the learning environment. The allowed parameters depend on whether the event is added or updated (see [addBookableEvent](#!/bookableEvents/addBookableEvent) and [updateBookableEvent](#!/bookableEvents/updateBookableEvent)).","operationId":"addOrUpdateBookableEvent","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/BookableEventID"}],"responses":{"200":{"description":"success"}}}},"/addBookableEventTeachers/{eventID}":{"post":{"tags":["bookableEvents"],"summary":"Add event instructors","description":"This can be used to add instructors to an existing event.","operationId":"addBookableEventTeachers","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/BookableEventID"},{"name":"user","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the user, this parameter can occur multiple times"},{"name":"userUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the user, this parameter can occur multiple times. 36 characters required."},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore users who are already in the group"}],"responses":{"200":{"description":"success"},"404":{"description":"no event exists with the specified ID"},"409":{"description":"a user is not an instructor or a user is already in the event (and **ignoreDuplicates** is **false**)"}}}},"/deleteBookableEventTeachers/{eventID}":{"post":{"tags":["bookableEvents"],"summary":"Delete event instructors","description":"This can be used to remove instructors from an existing event.","operationId":"deleteBookableEventTeachers","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/BookableEventID"},{"name":"user","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the user, this parameter can occur multiple times"},{"name":"userUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the user, this parameter can occur multiple times. 36 characters required."},{"name":"ignoreMissing","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore users who do not exist or are not in the group"}],"responses":{"200":{"description":"success"},"404":{"description":"no event exists with the specified ID or a user does not exist with the specified ID (and **ignoreMissing** is **false**)"},"409":{"description":"a user is not in the event (and **ignoreMissing** is **false**)"}}}},"/linkBookableEvent/{eventID}/{courseID}/{activityID}":{"post":{"tags":["bookableEvents"],"summary":"Link event to activity","description":"This can be used to link an existing event to an existing activity. <br/> <br/> **Note:** If activity external ID and course external ID are added as path components, they will have priority and all other IDs will be ignored. If activity external ID and course external ID are added as parameters, they will have priority and the UIDs will be ignored. If UIDs are added as parameters, they will only be considered if activity external ID and course external ID aren't included (as a parameter or as a path) in the call.<br/>Example: /linkBookableEvent?courseUID=example&activityUID=example&eventID=example","operationId":"linkBookableEvent","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/BookableEventID"},{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/ActivityID"},{"$ref":"#/parameters/CourseUID"},{"$ref":"#/parameters/ActivityUID"},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore events that are already linked to the activity"}],"responses":{"200":{"description":"success"},"404":{"description":"no event, course or activity exists with the specified ID"},"409":{"description":"an event is already linked to the activity (and **ignoreDuplicates** is **false**)"}}}},"/unlinkBookableEvent/{eventID}/{courseID}/{activityID}":{"post":{"tags":["bookableEvents"],"summary":"Unlink event from activity","description":"This can be used to unlink an event from an activity.<br/> <br/> **Note:** If activity external ID and course external ID are added as path components, they will have priority and all other IDs will be ignored. If activity external ID and course external ID are added as parameters, they will have priority and the UIDs will be ignored. If UIDs are added as parameters, they will only be considered if activity external ID and course external ID aren't included (as a parameter or as a path) in the call.<br/>Example: /unlinkBookableEvent?courseUID=example&activityUID=example&eventID=example","operationId":"unlinkBookableEvent","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/BookableEventID"},{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/ActivityID"},{"$ref":"#/parameters/CourseUID"},{"$ref":"#/parameters/ActivityUID"},{"name":"ignoreMissing","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore events that do not exist in the activity"}],"responses":{"200":{"description":"success"},"404":{"description":"no event, course or activity exists with the specified ID"},"409":{"description":"the event is not linked to the activity (and **ignoreMissing** is **false**)"}}}},"/subscribeBookableEvent/{userID}/{eventID}":{"post":{"tags":["bookableEvents"],"summary":"Enrol learners to an event","description":"This can be used to enrol learners to an event.","operationId":"subscribeBookableEvent","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"$ref":"#/parameters/BookableEventID"},{"$ref":"#/parameters/BookableEventUID"},{"$ref":"#/parameters/CourseID"},{"$ref":"#/parameters/ActivityID"},{"$ref":"#/parameters/BookableEventNotify"},{"$ref":"#/parameters/BookableEventNotifyTeacher"}],"responses":{"200":{"description":"Success"},"404":{"description":"No user and/or event exists with the specified ID."},"409":{"description":"Learner is subscribed to 1 or more courses that contain multiple activities with the same event. Please add an activityID to your request. | Learner is subscribed to multiple courses containing the same event. Add a CourseID to your request. | The specified learner is not subscribed in a course in which the event is linked. | The event has reached its maximum enrolment capacity for learners. | The student is already enrolled to an event in the activity"}}}},"/unsubscribeBookableEvent/{userID}/{eventID}":{"post":{"tags":["bookableEvents"],"summary":"Unenrol learners from an event","description":"This can be used to unenrol learners from an event.","operationId":"unsubscribeBookableEvent","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"},{"$ref":"#/parameters/BookableEventID"},{"$ref":"#/parameters/BookableEventUID"},{"$ref":"#/parameters/BookableEventNotify"},{"$ref":"#/parameters/BookableEventNotifyTeacher"}],"responses":{"200":{"description":"Success"},"404":{"description":"No user and/or event exists with the specified ID."},"409":{"description":"The specified learner is not subscribed to the event."}}}},"/getBookableEventSubscriptions/{eventID}":{"get":{"tags":["bookableEvents"],"summary":"Get all learners who are subscribed","description":"This can be used to see all subscriptions of a bookable event.","operationId":"getBookableEventSubscriptions","parameters":[{"$ref":"#/parameters/BookableEventID"}],"produces":["application/json","application/xml","text/plain"],"responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/bookableEventSubscription"}}}}},"/getSkillProfiles":{"get":{"tags":["skillProfiles"],"summary":"Get skill profiles","description":"This can be used to obtain all skill profiles of the environment","operationId":"getSkillProfiles","consumes":["application/x-www-form-urlencoded"],"parameters":[],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"properties":{"skillProfiles":{"type":"array","items":{"$ref":"#/definitions/SkillProfile"},"xml":{"wrapped":true}}}}}}}},"/addSkillProfileUsers/{skillProfileID}":{"post":{"tags":["skillProfiles"],"summary":"Add user to a skill profile","description":"This can be used to link user to the existing skill profile.<br/> <br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /addSkillProfileUsers?skillProfileUID=example&userUID=example","operationId":"addSkillProfileUsers","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/SkillProfileID"},{"$ref":"#/parameters/SkillProfileUID"},{"name":"user","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the user, this parameter can occur multiple times"},{"name":"userUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the user, this parameter can occur multiple times. 36 characters required."},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore users that are already linked to a skill profile"}],"responses":{"200":{"description":"success"},"404":{"description":"no skill profile or user exists with the specified ID"},"409":{"description":"a user already linked to a skill profile (and **ignoreDuplicates** is **false**"}}}},"/deleteSkillProfileUsers/{skillProfileID}":{"post":{"tags":["skillProfiles"],"summary":"Remove user from a skill profile","description":"Remove user from a skill profile.<br/> <br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /deleteSkillProfileUsers?skillProfileUID=example&userUID=example","operationId":"deleteSkillProfileUsers","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/SkillProfileID"},{"$ref":"#/parameters/SkillProfileUID"},{"name":"user","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","required":true,"description":"the external ID of the user, this parameter can occur multiple times"},{"name":"userUID","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the UID (formatted as UUID) of the user, this parameter can occur multiple times. 36 characters required."},{"name":"ignoreMissing","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore users who do not exist or are not linked to the skill profile"}],"responses":{"200":{"description":"success"},"404":{"description":"Skill profile not found or User does not exist (and **ignoreMissing** is **false**)"},"409":{"description":"Skill profile does not contain user with the specified ID (and **ignoreMissing** is **false**)"}}}},"/addSkillProfileGroups/{skillProfileID}/{learnerGroupID}":{"post":{"tags":["skillProfiles"],"summary":"Add learner group(s) to profile","description":"This can be used to add existing learner groups to an existing profile. <br/><br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /addSkillProfileGroups?skillProfileUID=example&learnerGroupID=example","operationId":"addSkillProfileGroups","consumes":["application/x-www-form-urlencoded"],"parameters":[{"$ref":"#/parameters/SkillProfileID"},{"$ref":"#/parameters/SkillProfileUID"},{"name":"<b> learnerGroupID </b>","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","description":"the external ID of the group, this parameter can occur multiple times"},{"name":"ignoreDuplicates","in":"formData","type":"string","enum":[true,false],"default":false,"description":"ignore groups that are already in the profile"}],"responses":{"200":{"description":"success"},"404":{"description":"* Profile does not exist. \n* Some student groups do not exist."},"409":{"description":"* Some groups are not a student groups. \n*  Profiles feature is not available for the current reseller."}}}},"/getStudentSkillProfiles/{userID}":{"get":{"tags":["skillProfiles"],"summary":"Get skill profiles for the student","description":"This can be used to obtain the progress of the skill profiles from a specified student.<br/> <br/> **Note:** If an external ID is added as a path component, that will have priority and all other IDs will be ignored. If an external ID is added as a parameter, that will have priority and the UID will be ignored. If a UID is added as a parameter, it will only be considered if there is no external ID included (as a parameter or as a path) in the call.<br/>Example: /getStudentSkillProfiles?userUID=example","operationId":"getStudentSkillProfiles","parameters":[{"$ref":"#/parameters/UserID"},{"$ref":"#/parameters/UserUID"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"properties":{"studentSkillProfiles":{"type":"array","items":{"$ref":"#/definitions/StudentSkillProfile"},"xml":{"wrapped":true}}}}},"404":{"description":"no user exists with the specified ID"}}}},"/getSurveyResults/{externalId}":{"get":{"tags":["surveys"],"summary":"Get survey results by external ID","description":"Returns all survey responses for the survey identified by the given external ID. Each result entry contains the survey ID, course ID, survey activity ID, completion date, user ID, item ID, question text, answer, and optional comments.","operationId":"getSurveyResults","parameters":[{"name":"externalId","in":"path","type":"string","required":true,"description":"the external ID of the survey"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/SurveyResults"}},"404":{"description":"no survey exists with the specified external ID"}}}},"/getCourseSurveyResults/{externalId}":{"get":{"tags":["surveys"],"summary":"Get all survey results for a course","description":"Returns all survey responses for all surveys in the course identified by the given external ID. Each result entry contains the survey ID, course ID, survey activity ID, completion date, user ID, item ID, question text, answer, and optional comments.","operationId":"getCourseSurveyResults","parameters":[{"name":"externalId","in":"path","type":"string","required":true,"description":"the external ID of the course"},{"name":"activityExternalId","in":"query","type":"string","required":false,"description":"optional external ID of a specific survey activity; if supplied, only results from that activity are returned"}],"produces":["application/json","application/xml"],"responses":{"200":{"description":"success","schema":{"$ref":"#/definitions/CourseSurveyResults"}},"404":{"description":"no course exists with the specified external ID, or the specified activity external ID does not match any survey activity in the course"}}}}},"parameters":{"ID":{"name":"ID","in":"path","type":"string","required":true,"description":"the ID in the external system, which is shown as **external ID** in the platform"},"UID":{"name":"UID","in":"query","type":"string","required":false,"description":"the UID in the platform. 36 characters required."},"UserID":{"name":"userID","in":"path","type":"string","required":true,"description":"the ID of the user in the external system, which is shown as **external ID** in the platform"},"UserUID":{"name":"userUID","in":"query","type":"string","required":false,"description":"the UID (formatted as UUID) of the user in the platform. 36 characters required."},"BundleCourseID":{"name":"bundleCourseID","in":"path","type":"string","required":true,"description":"the ID of the bundle course in the external system, which is shown as external ID in the platform"},"BundleCourseUID":{"name":"bundleCourseUID","in":"query","type":"string","description":"the UID (formatted as UUID) of the bundle course in the platform. 36 characters required."},"TeacherID":{"name":"teacherID","in":"path","type":"string","required":true,"description":"the ID of the teacher in the external system, which is shown as **external ID** in the platform"},"TeacherUID":{"name":"teacherUID","in":"query","type":"string","required":false,"description":"the UID (formatted as UUID) of the teacher user in the platform. 36 characters required."},"StudentID":{"name":"studentID","in":"path","type":"string","required":true,"description":"the ID of the student in the external system, which is shown as **external ID** in the platform"},"StudentUID":{"name":"studentUID","in":"query","type":"string","required":false,"description":"the UID (formatted as UUID) of the student in the platform. 36 characters required."},"BookableEventID":{"name":"eventID","in":"path","type":"string","required":true,"description":"the ID of the event in the external system, which is shown as **external ID** in the platform"},"BookableEventUID":{"name":"eventUID","in":"query","type":"string","required":false,"description":"the UID (formatted as UUID) of the event in the platform. 36 characters required."},"CourseID":{"name":"courseID","in":"path","type":"string","required":true,"description":"the ID of the course in the external system, which is shown as **external ID** in the platform"},"CourseUID":{"name":"courseUID","in":"query","type":"string","required":false,"description":"the UID (formatted as UUID) of the course in the platform. 36 characters required."},"ActivityID":{"name":"activityID","in":"path","type":"string","required":true,"description":"the ID of the activity in the external system, which is shown as **external ID** in the platform"},"ActivityUID":{"name":"activityUID","in":"query","type":"string","required":false,"description":"the UID (formatted as UUID) of the activity in the platform. 36 characters required."},"NewID":{"name":"id","in":"formData","type":"string","description":"new (external) ID, must be unique"},"GroupID":{"name":"groupID","in":"path","type":"string","required":true,"description":"the ID of the group in the external system, which is shown as **external ID** in the platform"},"ParentID":{"name":"parent","in":"formData","type":"string","required":false,"description":"the ID of the parent group in the external system, which is shown as **external ID** in the platform"},"TemplateID":{"name":"templateID","in":"path","type":"string","required":true,"description":"the ID of the template in the external system, which is shown as **external ID** in the platform"},"TemplateUID":{"name":"templateUID","in":"query","type":"string","required":false,"description":"the UID (formatted as UUID) of the template in the platform. 36 characters required."},"Name":{"name":"name","in":"formData","type":"string","required":true,"description":"must be unique"},"Title":{"name":"title","in":"formData","type":"string","required":false},"Description":{"name":"description","in":"formData","type":"string"},"ResellerID":{"name":"resellerID","in":"path","type":"string","required":true,"description":"the ID of the reseller in the external system, which is shown as **external ID** in the platform"},"AccessCodeGroupID":{"name":"groupID","in":"path","type":"string","required":true,"description":"the ID of the access code group in the external system, which is shown as **external ID** in the platform"},"CalendarUID":{"name":"UID","in":"path","type":"string","required":true,"description":"the UID (formatted as UUID) of the calendar item. 36 characters required."},"Login":{"name":"login","in":"formData","type":"string","description":"must be unique (and must be an email address, unless users do not log in with their email addresses), also sets the email address if users log in with their email address (which is the default setting for a new environment, but it can be changed by our support desk (support@anewspring.com))"},"FirstName":{"name":"firstName","in":"formData","type":"string"},"MiddleName":{"name":"middleName","in":"formData","type":"string","description":"Labelled as \"Prefix\" in the interface"},"LastName":{"name":"lastName","in":"formData","type":"string"},"Gender":{"name":"gender","in":"formData","type":"string","enum":["male","female","other"],"description":"**male**, **female**, **other**"},"UserTitle":{"name":"title","in":"formData","type":"string"},"Initials":{"name":"initials","in":"formData","type":"string"},"Email":{"name":"email","in":"formData","type":"string","description":"only applicable if users do not log in with their email address (can be set for an environment by our support desk (support@anewspring.com)"},"Function":{"name":"function","in":"formData","type":"string"},"Company":{"name":"company","in":"formData","type":"string"},"DateOfBirth":{"name":"dateOfBirth","in":"formData","type":"string","format":"date","description":"**yyyy-MM-dd (if already exists, can be removed by updating it with an empty parameter)**"},"TelephoneNumber":{"name":"telephoneNumber","in":"formData","type":"string"},"FaxNumber":{"name":"faxNumber","in":"formData","type":"string"},"CellPhoneNumber":{"name":"cellPhoneNumber","in":"formData","type":"string"},"Address":{"name":"address","in":"formData","type":"string"},"Zip":{"name":"zip","in":"formData","type":"string"},"Residence":{"name":"residence","in":"formData","type":"string"},"Country":{"name":"country","in":"formData","type":"string"},"InvoiceAddress":{"name":"invoiceAddress","in":"formData","type":"string"},"InvoiceZip":{"name":"invoiceZip","in":"formData","type":"string"},"InvoiceResidence":{"name":"invoiceResidence","in":"formData","type":"string"},"InvoiceCountry":{"name":"invoiceCountry","in":"formData","type":"string"},"Custom1":{"name":"custom1","in":"formData","type":"string"},"Custom2":{"name":"custom2","in":"formData","type":"string"},"Custom3":{"name":"custom3","in":"formData","type":"string"},"Custom4":{"name":"custom4","in":"formData","type":"string"},"Custom5":{"name":"custom5","in":"formData","type":"string"},"Locale":{"name":"locale","in":"formData","type":"string","enum":["nl","en_GB","en_US","fr","it","es","sv","zh"],"description":"**nl**, **en_GB**, **en_US**, **fr**, **it**, **es**, **sv**, **zh** (the default is the locale of the current reseller, this can be set by our support desk (support@anewspring.com)). 'en' can be used for backwards compatibility and is the same as 'en_GB'."},"TimeZoneGroup":{"name":"timeZoneGroup","in":"formData","type":"string","enum":["Etc/GMT+12","Etc/GMT+11","Pacific/Honolulu","America/Anchorage","America/Santa_Isabel","America/Los_Angeles","America/Phoenix","America/Chihuahua","America/Denver","America/Guatemala","America/Chicago","America/Mexico_City","America/Regina","America/Bogota","America/Cancun","America/New_York","America/Indianapolis","America/Caracas","America/Asuncion","America/Halifax","America/Cuiaba","America/La_Paz","America/St_Johns","America/Sao_Paulo","America/Cayenne","America/Buenos_Aires","America/Godthab","America/Montevideo","America/Bahia","America/Santiago","Etc/GMT+2","Atlantic/Azores","Atlantic/Cape_Verde","Africa/Casablanca","Etc/GMT","Europe/London","Atlantic/Reykjavik","Europe/Berlin","Europe/Budapest","Europe/Paris","Europe/Warsaw","Africa/Lagos","Africa/Windhoek","Asia/Amman","Europe/Bucharest","Asia/Beirut","Africa/Cairo","Asia/Damascus","Africa/Johannesburg","Europe/Kiev","Europe/Istanbul","Asia/Jerusalem","Europe/Kaliningrad","Africa/Tripoli","Asia/Baghdad","Asia/Riyadh","Europe/Minsk","Europe/Moscow","Africa/Nairobi","Asia/Tehran","Asia/Dubai","Asia/Baku","Europe/Samara","Indian/Mauritius","Asia/Tbilisi","Asia/Yerevan","Asia/Kabul","Asia/Tashkent","Asia/Yekaterinburg","Asia/Karachi","Asia/Calcutta","Asia/Colombo","Asia/Katmandu","Asia/Almaty","Asia/Dhaka","Asia/Novosibirsk","Asia/Rangoon","Asia/Bangkok","Asia/Krasnoyarsk","Asia/Shanghai","Asia/Irkutsk","Asia/Singapore","Australia/Perth","Asia/Taipei","Asia/Ulaanbaatar","Asia/Tokyo","Asia/Seoul","Asia/Yakutsk","Australia/Adelaide","Australia/Darwin","Australia/Brisbane","Australia/Sydney","Pacific/Port_Moresby","Australia/Hobart","Asia/Magadan","Asia/Vladivostok","Asia/Srednekolymsk","Pacific/Guadalcanal","Asia/Kamchatka","Pacific/Auckland","Etc/GMT-12","Pacific/Fiji","Pacific/Tongatapu","Pacific/Apia","Pacific/Kiritimati"],"description":"The time zone group for the user. If the environment is not time zone enabled this field will be ignored."},"TimeZone":{"name":"timeZone","in":"formData","type":"string","description":"The time zone for the user. If this is not one of the time zone group options, it will be converted to the matching one (eg: Europe/Amsterdam will be changed to Europe/Berlin). If the environment is not time zone enabled, this field will be ignored. Additionally, if a start date or end date is entered with a Z at the end, the time zone will always be set to UTC."},"Role":{"name":"role","in":"formData","type":"array","items":{"type":"string"},"collectionFormat":"multi","default":"student","enum":["student","teacher","mentor","author","designer","reseller","administrator","tenant"],"description":"**student**, **teacher**, **mentor**, **author**, **designer**, **reseller**, **administrator**, **tenant** <br/> (In the API we use old role terms. With student we mean learner, with teacher we mean instructor and with mentor we mean observer.)"},"Password":{"name":"password","in":"formData","type":"string"},"GeneratePassword":{"name":"generatePassword","in":"formData","type":"string","enum":[true,false],"default":false,"description":"generate a random password (cannot be combined with password, implies notify=true)"},"ForcePasswordChange":{"name":"forcePasswordChange","in":"formData","type":"string","enum":[true,false],"default":false,"description":"force user to change password on next login (cannot be set without a password being set or generated)"},"Notify":{"name":"notify","in":"formData","type":"string","enum":[true,false],"default":false,"description":"send an email to the user with the login credentials (only possible if the user has a login, password and email address)"},"Active":{"name":"active","in":"formData","type":"string","enum":[true,false],"default":true},"Archived":{"name":"archived","in":"formData","type":"string","enum":[true,false],"description":"archive the user"},"Renewable":{"name":"renewable","in":"formData","type":"string","enum":[true,false],"default":true,"description":"only applicable when the environment uses course based licenses"},"Avatar":{"name":"avatar","in":"formData","type":"file","description":"profile picture (square), the content-type of the POST must be **multipart/form-data** for this (as for all file uploads)"},"DeleteAvatar":{"name":"deleteAvatar","in":"formData","type":"string","enum":[true,false],"default":false,"description":"delete the current profile picture"},"UserCourseStartDate":{"name":"startDate","in":"formData","type":"string","format":"date","description":"**yyyy-MM-ddTHH:mm:ssZ** (UTC time) or **yyyy-MM-dd** (deprecated, interpreted in the timezone set for the subenvironment of the subscription), first date (and optional time) the course is available for the student"},"UserCourseExpireDate":{"name":"expireDate","in":"formData","type":"string","format":"date","description":"**yyyy-MM-dd**, date on which the course expires for the student"},"GroupCourseStartDate":{"name":"startDate","in":"formData","type":"string","format":"date","description":"**yyyy-MM-ddTHH:mm:ssZ** (UTC time) or **yyyy-MM-dd** (deprecated), first date (and optional time) the course is available for the student"},"GroupCourseExpireDate":{"name":"expireDate","in":"formData","type":"string","format":"date","description":"**yyyy-MM-dd**, date on which the course expires for the student"},"UserCourseExpired":{"name":"expired","in":"formData","type":"string","enum":[true,false],"description":"Update the status of the subscription to expired when set to true or unexpired when set to false"},"EventDescription":{"name":"description","in":"formData","type":"string"},"EventLocation":{"name":"location","in":"formData","type":"string"},"EventNotify":{"name":"notify","in":"formData","type":"string","enum":[true,false],"default":false,"description":"send an email to the students to notify them of the change"},"BookableEventDescription":{"name":"description","in":"formData","type":"string"},"BookableEventLocation":{"name":"location","in":"formData","type":"string"},"BookableEventStart":{"name":"start","in":"formData","type":"string","format":"date-time","description":"**yyyy-MM-ddTHH:mm:ssZ** (UTC time) or **yyyy-MM-ddTHH:mm:ss** (local time for selected time zone). Start date of the event must be equal to the end date of the event. Minutes will be rounded up to 15 minute intervals (00, 15, 30, 45). Please keep in mind this could result into time being rounded up to the next day, making it no longer equal to the end date of the event."},"BookableEventEnd":{"name":"end","in":"formData","type":"string","format":"date-time","description":"**yyyy-MM-ddTHH:mm:ssZ** (UTC time) or **yyyy-MM-ddTHH:mm:ss** (local time for selected time zone). End date of the event must be equal to the start date of the event. Minutes will be rounded up to 15 minute intervals (00, 15, 30, 45). Please keep in mind this could result into time being rounded up to the next day, making it no longer equal to the start date of the event."},"BookableEventReminder":{"name":"eventReminder","in":"formData","type":"string","enum":[true,false],"default":true,"description":"Enable to send a notification as a reminder the event starts in a certain amount of days or weeks"},"BookableEventReminderInterval":{"name":"eventReminderInterval","in":"formData","type":"string","description":"Set how many days or weeks (e.g., **2 days**, **1 week**, etc.) prior to the event's start date the notification should be sent."},"BookableEventReminderNotes":{"name":"eventReminderNotes","in":"formData","type":"string","description":"Provide additional notes related to the event that will shown in the notification (email-only)."},"BookableEventScoring":{"name":"scoring","in":"formData","type":"string","enum":[true,false],"default":false,"description":"Enable grading options for the event"},"BookableEventNotify":{"name":"notify","in":"formData","type":"string","enum":[true,false],"default":false,"description":"notify the student of the change"},"BookableEventNotifyTeacher":{"name":"notifyTeacher","in":"formData","type":"string","enum":[true,false],"default":true,"description":"notify the teacher(s) of the change"},"Grading":{"name":"grading","in":"formData","type":"string","enum":["Percentage","10Points","19Points","91Points"],"default":"Percentage","description":"Set the grading scale. Only applicable if scoring is enabled"},"Threshold":{"name":"threshold","in":"formData","type":"number","description":"Set the threshold for passing the event. Only applicable if scoring is enabled"},"BookableEventAttendance":{"name":"attendance","in":"formData","type":"string","enum":[true,false],"default":false,"description":"Learners will be assessed with 'Present' or 'Absent'. Only applicable of scoring is disabled"},"MinimumParticipants":{"name":"minimumParticipants","in":"formData","type":"integer"},"MaximumParticipants":{"name":"maximumParticipants","in":"formData","type":"integer"},"BookableEventStatus":{"name":"status","in":"formData","type":"string","enum":["Confirmed","Unconfirmed","Cancelled"],"default":"Unconfirmed"},"EnrollmentPossible":{"name":"enrollmentPossible","in":"formData","type":"string","enum":[true,false],"default":true},"SkillProfileID":{"name":"skillProfileID","in":"path","type":"string","required":true,"description":"the ID of the skill profile in the external system, which is shown as **external ID** in the platform"},"SkillProfileUID":{"name":"skillProfileUID","in":"query","type":"string","required":false,"description":"the UID (formatted as UUID) of the skill profile in the platform. 36 characters required."},"StudentGroupID":{"name":"studentGroupID","in":"query","type":"string","required":true,"description":"the ID of the student group in the platform"}},"responses":{"Boolean":{"description":"success","schema":{"properties":{"result":{"type":"boolean","xml":{"name":"value"}}},"xml":{"name":"result"}}}},"definitions":{"User":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"uid":{"type":"string","xml":{"attribute":true}},"login":{"type":"string"},"email":{"type":"string"},"title":{"type":"string"},"firstName":{"type":"string"},"middleName":{"type":"string","description":"Labelled as \"Prefix\" in the interface"},"lastName":{"type":"string"},"initials":{"type":"string"},"gender":{"type":"string","enum":["male","female"]},"company":{"type":"string"},"function":{"type":"string"},"dateOfBirth":{"type":"string","format":"date","example":"1970-01-01"},"telephoneNumber":{"type":"string"},"faxNumber":{"type":"string"},"cellPhoneNumber":{"type":"string"},"address":{"type":"string"},"zip":{"type":"string"},"residence":{"type":"string"},"country":{"type":"string"},"invoiceAddress":{"type":"string"},"invoiceZip":{"type":"string"},"invoiceResidence":{"type":"string"},"invoiceCountry":{"type":"string"},"custom1":{"type":"string"},"custom2":{"type":"string"},"custom3":{"type":"string"},"custom4":{"type":"string"},"custom5":{"type":"string"},"locale":{"type":"string","enum":["nl","en","fr","it","es"]},"timeZoneGroup":{"type":"string"},"active":{"type":"boolean"},"archived":{"type":"boolean"},"renewable":{"type":"boolean"},"roles":{"type":"array","xml":{"name":"role"},"items":{"type":"string","enum":["student","teacher","mentor","author","designer","reseller","administrator","tenant"]}}},"xml":{"name":"user"}},"userGroup":{"properties":{"name":{"type":"string"},"id":{"type":"number"},"type":{"type":"string"}}},"bookableEventSubscription":{"properties":{"eventId":{"type":"string"},"eventName":{"type":"string"},"userId":{"type":"string"},"userUid":{"type":"string"},"userName":{"type":"string"},"reseller":{"type":"string"},"active":{"type":"boolean"},"courseId":{"type":"string"},"courseUid":{"type":"string"},"courseName":{"type":"string"},"activityId":{"type":"string"},"activityName":{"type":"string"},"subscribeDate":{"type":"string"},"subscribeDateTime":{"type":"string"}}},"UserCore":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"uid":{"type":"string","xml":{"attribute":true}},"name":{"type":"string","xml":{"attribute":true}},"login":{"type":"string","xml":{"attribute":true}},"email":{"type":"string","xml":{"attribute":true}},"active":{"type":"boolean","xml":{"attribute":true}},"archived":{"type":"boolean","xml":{"attribute":true}}},"xml":{"name":"user"}},"Subscription":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"uid":{"type":"string","xml":{"attribute":true}},"name":{"type":"string","xml":{"attribute":true}},"reseller":{"type":"string","xml":{"attribute":true}},"active":{"type":"boolean","xml":{"attribute":true}},"subscribeDate":{"type":"string","format":"date","example":"2013-04-05","xml":{"attribute":true}},"subscribeDateTime":{"type":"string","format":"datetime","example":"2013-04-05T12:34:56Z","xml":{"attribute":true}},"startDate":{"type":"string","format":"date","example":"2013-04-05","xml":{"attribute":true}},"startDateTime":{"type":"string","format":"datetime","example":"2013-04-05T12:34:56Z","xml":{"attribute":true}},"finished":{"type":"boolean","xml":{"attribute":true}},"expired":{"type":"boolean","xml":{"attribute":true}},"progress":{"type":"string","example":"11/16","xml":{"attribute":true}},"knowledgeIntake":{"type":"number","example":0.4,"xml":{"attribute":true}},"efficiency":{"type":"number","example":0.27,"xml":{"attribute":true}},"objectiveProgress":{"type":"number","example":0.58,"xml":{"attribute":true}}},"xml":{"name":"course"}},"CourseResult":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"uid":{"type":"string","xml":{"attribute":true}},"name":{"type":"string","xml":{"attribute":true}},"reseller":{"type":"string","xml":{"attribute":true}},"active":{"type":"boolean","xml":{"attribute":true}},"subscribeDate":{"type":"string","format":"date","example":"2013-04-05","xml":{"attribute":true}},"startDate":{"type":"string","format":"date","example":"2013-04-05","xml":{"attribute":true}},"finished":{"type":"boolean","xml":{"attribute":true}},"expired":{"type":"boolean","xml":{"attribute":true}},"progress":{"type":"string","example":"11/16","xml":{"attribute":true}},"knowledgeIntake":{"type":"number","example":0.4,"xml":{"attribute":true}},"efficiency":{"type":"number","example":0.27,"xml":{"attribute":true}},"objectivesProgress":{"type":"number","example":0.58,"xml":{"attribute":true}},"lastTrainingCompletedDate":{"type":"string","format":"date","example":"2014-07-02","xml":{"attribute":true}},"lastTrainingCompletedDateTime":{"type":"string","format":"datetime","example":"2014-07-02T12:34:56Z","xml":{"attribute":true}},"completed":{"type":"boolean","xml":{"attribute":true}},"completeDate":{"type":"string","format":"date","example":"2013-04-20","xml":{"attribute":true}},"grade":{"type":"string","example":"84%","xml":{"attribute":true}},"passed":{"type":"boolean","xml":{"attribute":true}},"gradeDate":{"type":"string","format":"date","example":"2013-04-20","xml":{"attribute":true}},"parts":{"type":"array","items":{"$ref":"#/definitions/PartResult"},"xml":{"wrapped":true}},"objectives":{"type":"array","items":{"$ref":"#/definitions/ObjectiveResult"},"xml":{"wrapped":true}}},"xml":{"name":"course"}},"Event":{"properties":{"uid":{"type":"string","xml":{"attribute":true}},"type":{"type":"string","xml":{"attribute":true}},"name":{"type":"string","xml":{"attribute":true}},"location":{"type":"string","xml":{"attribute":true}},"startDateTime":{"type":"string","format":"date","example":"2013-04-20T12:34:56Z","xml":{"attribute":true}},"endDateTime":{"type":"string","format":"date","example":"2013-04-20T12:34:56Z","xml":{"attribute":true}},"timezone":{"type":"string","xml":{"attribute":true}},"description":{"type":"string","xml":{"attribute":true}}},"xml":{"name":"event"}},"PartResult":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"uid":{"type":"string","xml":{"attribute":true}},"name":{"type":"string","xml":{"attribute":true}},"type":{"type":"string","xml":{"attribute":true}},"subType":{"type":"string","xml":{"attribute":true}},"blockName":{"type":"string","xml":{"attribute":true}},"completed":{"type":"boolean","xml":{"attribute":true}},"completeDate":{"type":"string","format":"date","example":"2013-04-20","xml":{"attribute":true}},"completeDateTime":{"type":"string","format":"date","example":"2013-04-20T12:34:56Z","xml":{"attribute":true}},"score":{"type":"string","xml":{"attribute":true}},"passed":{"type":"boolean","xml":{"attribute":true}},"attempts":{"type":"array","items":{"$ref":"#/definitions/Attempt"},"xml":{"name":"attempt"}}},"xml":{"name":"part"}},"Attempt":{"properties":{"attemptNumber":{"type":"integer","xml":{"attribute":true}},"startDate":{"type":"string","format":"date","example":"2013-04-05"},"startDateTime":{"type":"string","format":"date","example":"2013-04-05T12:34:56Z"},"completed":{"type":"boolean"},"completeDate":{"type":"string","format":"date","example":"2013-04-05"},"completeDateTime":{"type":"string","format":"date","example":"2013-04-05T12:34:56Z"},"expireDate":{"type":"string","format":"date","example":"2013-04-05"},"progress":{"type":"string","example":"2/2"},"score":{"type":"string","example":"10.0"},"passed":{"type":"boolean"},"terms":{"type":"array","items":{"$ref":"#/definitions/Term"},"xml":{"wrapped":true}},"criteria":{"type":"array","items":{"$ref":"#/definitions/Criterion"},"xml":{"wrapped":true}}},"xml":{"name":"part"}},"Term":{"properties":{"name":{"type":"string","xml":{"attribute":true}},"score":{"type":"integer","example":1},"maxScore":{"type":"integer","example":3},"threshold":{"type":"integer","example":2}},"xml":{"name":"term"}},"Criterion":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"name":{"type":"string","xml":{"attribute":true}},"maxScore":{"type":"integer","example":3},"score":{"type":"integer","example":1}},"xml":{"name":"term"}},"ObjectiveResult":{"properties":{"name":{"type":"string","xml":{"attribute":true}},"value":{"type":"number","example":6},"target":{"type":"number","example":10},"knowledgeIntake":{"type":"number","example":0.65}},"xml":{"name":"term"}},"Template":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"uid":{"type":"string","xml":{"attribute":true}},"name":{"type":"string","xml":{"attribute":true}}},"xml":{"name":"template"}},"bundleTemplate":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"uid":{"type":"string","xml":{"attribute":true}},"name":{"type":"string"}}},"bundle":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"uid":{"type":"string","xml":{"attribute":true}},"name":{"type":"string"}}},"bundleCourseStatistic":{"properties":{"courseBundleId":{"type":"string","xml":{"attribute":true}},"courseBundleUid":{"type":"string","xml":{"attribute":true}},"subscribeDate":{"type":"string","format":"date-time"},"lastAccessDate":{"type":"string","format":"date-time"},"courses":{"type":"array","items":{"$ref":"#/definitions/courseResult"},"xml":{"wrapped":true}}}},"courseResult":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"uid":{"type":"string","xml":{"attribute":true}},"name":{"type":"string"},"reseller":{"type":"string"},"active":{"type":"boolean"},"subscribeDate":{"type":"string","format":"date","example":"2014-08-25"},"subscribeDateTime":{"type":"string","format":"date-time"},"startDate":{"type":"string","format":"date","example":"2014-08-25"},"startDateTime":{"type":"string","format":"date-time"},"finished":{"type":"boolean"},"expired":{"type":"boolean"},"progress":{"type":"string"},"knowledgeIntake":{"type":"number"},"efficiency":{"type":"number"},"objectiveProgress":{"type":"number"}}},"Course":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"uid":{"type":"string","xml":{"attribute":true}},"name":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"isTemplate":{"type":"boolean"},"templateUid":{"type":"string"},"active":{"type":"boolean"},"archived":{"type":"boolean"},"reseller":{"type":"string"},"type":{"type":"string","example":"Blended"},"accessType":{"type":"string","example":"Code"},"startDate":{"type":"string","format":"date","example":"2014-08-25"},"expireDate":{"type":"string","format":"date","example":"2015-08-25"},"expireInterval":{"type":"string","example":"1 year"},"teachersAllowed":{"type":"boolean"},"teacherGroup":{"type":"string"},"mentorGroup":{"type":"string"}},"xml":{"name":"course"}},"StudentSubscription":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"uid":{"type":"string","xml":{"attribute":true}},"name":{"type":"string","xml":{"attribute":true}},"reseller":{"type":"string","xml":{"attribute":true}},"active":{"type":"boolean","xml":{"attribute":true}},"subscribeDate":{"type":"string","format":"date","example":"2013-04-05","xml":{"attribute":true}},"subscribeDateTime":{"type":"string","format":"datetime","example":"2013-04-05T12:34:56Z","xml":{"attribute":true}},"startDate":{"type":"string","format":"date","example":"2013-04-05","xml":{"attribute":true}},"startDateTime":{"type":"string","format":"datetime","example":"2013-04-05T12:34:56Z","xml":{"attribute":true}},"finished":{"type":"boolean","xml":{"attribute":true}},"expired":{"type":"boolean","xml":{"attribute":true}},"progress":{"type":"string","example":"11/16","xml":{"attribute":true}},"knowledgeIntake":{"type":"number","example":0.4,"xml":{"attribute":true}},"efficiency":{"type":"number","example":0.27,"xml":{"attribute":true}},"objectiveProgress":{"type":"number","example":0.58,"xml":{"attribute":true}}},"xml":{"name":"student"}},"CourseStructure":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"uid":{"type":"string","xml":{"attribute":true}},"name":{"type":"string","xml":{"attribute":true}},"active":{"type":"boolean","xml":{"attribute":true}},"blocks":{"type":"array","items":{"$ref":"#/definitions/Block"},"xml":{"wrapped":true}}},"xml":{"name":"course"}},"Block":{"properties":{"name":{"type":"string","xml":{"attribute":true}},"hidden":{"type":"boolean","xml":{"attribute":true}},"adaptive":{"type":"boolean","xml":{"attribute":true}},"courseParts":{"type":"array","items":{"$ref":"#/definitions/Part"},"xml":{"wrapped":true}}},"xml":{"name":"block"}},"Part":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"uid":{"type":"string","xml":{"attribute":true}},"name":{"type":"string","xml":{"attribute":true}},"active":{"type":"boolean","xml":{"attribute":true}},"hidden":{"type":"boolean","xml":{"attribute":true}},"adaptive":{"type":"boolean","xml":{"attribute":true}}},"xml":{"name":"part"}},"SkillProfile":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"uid":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"}},"xml":{"name":"skillProfile"}},"StudentSkillProfile":{"properties":{"id":{"type":"string","xml":{"attribute":true}},"uid":{"type":"string","xml":{"attribute":true}},"name":{"type":"string","xml":{"attribute":true}},"description":{"type":"string","xml":{"attribute":true}},"achieved":{"type":"integer","xml":{"attribute":true}},"total":{"type":"integer","xml":{"attribute":true}}},"xml":{"name":"studentSkillProfile"}},"SurveyResults":{"properties":{"surveyName":{"type":"string"},"externalId":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/definitions/SurveyResult"}}},"xml":{"name":"surveyResults"}},"SurveyResult":{"properties":{"surveyId":{"type":"string"},"courseId":{"type":"string"},"surveyActivityId":{"type":"string"},"surveyActivityCompletionDate":{"type":"string","description":"**yyyy-MM-ddTHH:mm:ssZ** (UTC), empty string if not completed"},"userId":{"type":"integer"},"itemId":{"type":"integer"},"questionText":{"type":"string"},"answer":{"type":"string"},"comments":{"type":"string"}},"xml":{"name":"result"}},"CourseSurveyResults":{"properties":{"courseName":{"type":"string"},"externalId":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/definitions/SurveyResult"}}},"xml":{"name":"courseSurveyResults"}}}}