MDL-30085 core_grades functions moved to correct location
[moodle.git] / lib / db / services.php
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
18 /**
19  * Core external functions and service definitions.
20  *
21  * The functions and services defined on this file are
22  * processed and registered into the Moodle DB after any
23  * install or upgrade operation. All plugins support this.
24  *
25  * For more information, take a look to the documentation available:
26  *     - Webservices API: {@link http://docs.moodle.org/dev/Web_services_API}
27  *     - External API: {@link http://docs.moodle.org/dev/External_functions_API}
28  *     - Upgrade API: {@link http://docs.moodle.org/dev/Upgrade_API}
29  *
30  * @package    core_webservice
31  * @category   webservice
32  * @copyright  2009 Petr Skodak
33  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
34  */
36 $functions = array(
38     // Cohort related functions.
40     'core_cohort_create_cohorts' => array(
41         'classname'   => 'core_cohort_external',
42         'methodname'  => 'create_cohorts',
43         'classpath'   => 'cohort/externallib.php',
44         'description' => 'Creates new cohorts.',
45         'type'        => 'write',
46         'capabilities'=> 'moodle/cohort:manage',
47     ),
49     'core_cohort_delete_cohorts' => array(
50         'classname'   => 'core_cohort_external',
51         'methodname'  => 'delete_cohorts',
52         'classpath'   => 'cohort/externallib.php',
53         'description' => 'Deletes all specified cohorts.',
54         'type'        => 'delete',
55         'capabilities'=> 'moodle/cohort:manage',
56     ),
58     'core_cohort_get_cohorts' => array(
59         'classname'   => 'core_cohort_external',
60         'methodname'  => 'get_cohorts',
61         'classpath'   => 'cohort/externallib.php',
62         'description' => 'Returns cohort details.',
63         'type'        => 'read',
64         'capabilities'=> 'moodle/cohort:view',
65     ),
67     'core_cohort_update_cohorts' => array(
68         'classname'   => 'core_cohort_external',
69         'methodname'  => 'update_cohorts',
70         'classpath'   => 'cohort/externallib.php',
71         'description' => 'Updates existing cohorts.',
72         'type'        => 'write',
73         'capabilities'=> 'moodle/cohort:manage',
74     ),
76     'core_cohort_add_cohort_members' => array(
77         'classname'   => 'core_cohort_external',
78         'methodname'  => 'add_cohort_members',
79         'classpath'   => 'cohort/externallib.php',
80         'description' => 'Adds cohort members.',
81         'type'        => 'write',
82         'capabilities'=> 'moodle/cohort:assign',
83     ),
85     'core_cohort_delete_cohort_members' => array(
86         'classname'   => 'core_cohort_external',
87         'methodname'  => 'delete_cohort_members',
88         'classpath'   => 'cohort/externallib.php',
89         'description' => 'Deletes cohort members.',
90         'type'        => 'delete',
91         'capabilities'=> 'moodle/cohort:assign',
92     ),
94     'core_cohort_get_cohort_members' => array(
95         'classname'   => 'core_cohort_external',
96         'methodname'  => 'get_cohort_members',
97         'classpath'   => 'cohort/externallib.php',
98         'description' => 'Returns cohort members.',
99         'type'        => 'read',
100         'capabilities'=> 'moodle/cohort:view',
101     ),
102     // Grade related functions.
104     'core_grades_get_grades' => array(
105         'classname'     => 'core_grades_external',
106         'methodname'    => 'get_grades',
107         'classpath'     => 'grade/externallib.php',
108         'description'   => 'Returns grade item details and optionally student grades.',
109         'type'          => 'read',
110         'capabilities'  => 'moodle/grade:view, moodle/grade:viewall',
111     ),
113     'core_grades_update_grades' => array(
114         'classname'     => 'core_grades_external',
115         'methodname'    => 'update_grades',
116         'classpath'     => 'grade/externallib.php',
117         'description'   => 'Update a grade item and associated student grades.',
118         'type'          => 'write',
119         'capabilities'  => '',
120     ),
122     // === group related functions ===
124     'moodle_group_create_groups' => array(
125         'classname'   => 'core_group_external',
126         'methodname'  => 'create_groups',
127         'classpath'   => 'group/externallib.php',
128         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_create_groups(). ',
129         'type'        => 'write',
130         'capabilities'=> 'moodle/course:managegroups',
131     ),
133     'core_group_create_groups' => array(
134         'classname'   => 'core_group_external',
135         'methodname'  => 'create_groups',
136         'classpath'   => 'group/externallib.php',
137         'description' => 'Creates new groups.',
138         'type'        => 'write',
139         'capabilities'=> 'moodle/course:managegroups',
140     ),
142     'moodle_group_get_groups' => array(
143         'classname'   => 'core_group_external',
144         'methodname'  => 'get_groups',
145         'classpath'   => 'group/externallib.php',
146         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_get_groups()',
147         'type'        => 'read',
148         'capabilities'=> 'moodle/course:managegroups',
149     ),
151     'core_group_get_groups' => array(
152         'classname'   => 'core_group_external',
153         'methodname'  => 'get_groups',
154         'classpath'   => 'group/externallib.php',
155         'description' => 'Returns group details.',
156         'type'        => 'read',
157         'capabilities'=> 'moodle/course:managegroups',
158     ),
160     'moodle_group_get_course_groups' => array(
161         'classname'   => 'core_group_external',
162         'methodname'  => 'get_course_groups',
163         'classpath'   => 'group/externallib.php',
164         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_get_course_groups()',
165         'type'        => 'read',
166         'capabilities'=> 'moodle/course:managegroups',
167     ),
169     'core_group_get_course_groups' => array(
170         'classname'   => 'core_group_external',
171         'methodname'  => 'get_course_groups',
172         'classpath'   => 'group/externallib.php',
173         'description' => 'Returns all groups in specified course.',
174         'type'        => 'read',
175         'capabilities'=> 'moodle/course:managegroups',
176     ),
178     'moodle_group_delete_groups' => array(
179         'classname'   => 'core_group_external',
180         'methodname'  => 'delete_groups',
181         'classpath'   => 'group/externallib.php',
182         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_delete_groups()',
183         'type'        => 'delete',
184         'capabilities'=> 'moodle/course:managegroups',
185     ),
187     'core_group_delete_groups' => array(
188         'classname'   => 'core_group_external',
189         'methodname'  => 'delete_groups',
190         'classpath'   => 'group/externallib.php',
191         'description' => 'Deletes all specified groups.',
192         'type'        => 'delete',
193         'capabilities'=> 'moodle/course:managegroups',
194     ),
196     'moodle_group_get_groupmembers' => array(
197         'classname'   => 'core_group_external',
198         'methodname'  => 'get_group_members',
199         'classpath'   => 'group/externallib.php',
200         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_get_group_members()',
201         'type'        => 'read',
202         'capabilities'=> 'moodle/course:managegroups',
203     ),
205     'core_group_get_group_members' => array(
206         'classname'   => 'core_group_external',
207         'methodname'  => 'get_group_members',
208         'classpath'   => 'group/externallib.php',
209         'description' => 'Returns group members.',
210         'type'        => 'read',
211         'capabilities'=> 'moodle/course:managegroups',
212     ),
214     'moodle_group_add_groupmembers' => array(
215         'classname'   => 'core_group_external',
216         'methodname'  => 'add_group_members',
217         'classpath'   => 'group/externallib.php',
218         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_add_group_members()',
219         'type'        => 'write',
220         'capabilities'=> 'moodle/course:managegroups',
221     ),
223     'core_group_add_group_members' => array(
224         'classname'   => 'core_group_external',
225         'methodname'  => 'add_group_members',
226         'classpath'   => 'group/externallib.php',
227         'description' => 'Adds group members.',
228         'type'        => 'write',
229         'capabilities'=> 'moodle/course:managegroups',
230     ),
232     'moodle_group_delete_groupmembers' => array(
233         'classname'   => 'core_group_external',
234         'methodname'  => 'delete_group_members',
235         'classpath'   => 'group/externallib.php',
236         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_delete_group_members()',
237         'type'        => 'delete',
238         'capabilities'=> 'moodle/course:managegroups',
239     ),
241     'core_group_delete_group_members' => array(
242         'classname'   => 'core_group_external',
243         'methodname'  => 'delete_group_members',
244         'classpath'   => 'group/externallib.php',
245         'description' => 'Deletes group members.',
246         'type'        => 'delete',
247         'capabilities'=> 'moodle/course:managegroups',
248     ),
250     'core_group_create_groupings' => array(
251         'classname'   => 'core_group_external',
252         'methodname'  => 'create_groupings',
253         'classpath'   => 'group/externallib.php',
254         'description' => 'Creates new groupings',
255         'type'        => 'write',
256     ),
258     'core_group_update_groupings' => array(
259         'classname'   => 'core_group_external',
260         'methodname'  => 'update_groupings',
261         'classpath'   => 'group/externallib.php',
262         'description' => 'Updates existing groupings',
263         'type'        => 'write',
264     ),
266     'core_group_get_groupings' => array(
267         'classname'   => 'core_group_external',
268         'methodname'  => 'get_groupings',
269         'classpath'   => 'group/externallib.php',
270         'description' => 'Returns groupings details.',
271         'type'        => 'read',
272     ),
274     'core_group_get_course_groupings' => array(
275         'classname'   => 'core_group_external',
276         'methodname'  => 'get_course_groupings',
277         'classpath'   => 'group/externallib.php',
278         'description' => 'Returns all groupings in specified course.',
279         'type'        => 'read',
280     ),
282     'core_group_delete_groupings' => array(
283         'classname'   => 'core_group_external',
284         'methodname'  => 'delete_groupings',
285         'classpath'   => 'group/externallib.php',
286         'description' => 'Deletes all specified groupings.',
287         'type'        => 'write',
288     ),
290     'core_group_assign_grouping' => array(
291         'classname'   => 'core_group_external',
292         'methodname'  => 'assign_grouping',
293         'classpath'   => 'group/externallib.php',
294         'description' => 'Assing groups from groupings',
295         'type'        => 'write',
296     ),
298     'core_group_unassign_grouping' => array(
299         'classname'   => 'core_group_external',
300         'methodname'  => 'unassign_grouping',
301         'classpath'   => 'group/externallib.php',
302         'description' => 'Unassing groups from groupings',
303         'type'        => 'write',
304     ),
306     // === file related functions ===
308     'moodle_file_get_files' => array(
309         'classname'   => 'core_files_external',
310         'methodname'  => 'get_files',
311         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_files_get_files()',
312         'type'        => 'read',
313         'classpath'   => 'files/externallib.php',
314     ),
316     'core_files_get_files' => array(
317         'classname'   => 'core_files_external',
318         'methodname'  => 'get_files',
319         'description' => 'browse moodle files',
320         'type'        => 'read',
321         'classpath'   => 'files/externallib.php',
322     ),
324     'moodle_file_upload' => array(
325         'classname'   => 'core_files_external',
326         'methodname'  => 'upload',
327         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_files_upload()',
328         'type'        => 'write',
329         'classpath'   => 'files/externallib.php',
330     ),
332     'core_files_upload' => array(
333         'classname'   => 'core_files_external',
334         'methodname'  => 'upload',
335         'description' => 'upload a file to moodle',
336         'type'        => 'write',
337         'classpath'   => 'files/externallib.php',
338     ),
340     // === user related functions ===
342     'moodle_user_create_users' => array(
343         'classname'   => 'core_user_external',
344         'methodname'  => 'create_users',
345         'classpath'   => 'user/externallib.php',
346         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_user_create_users()',
347         'type'        => 'write',
348         'capabilities'=> 'moodle/user:create',
349     ),
351     'core_user_create_users' => array(
352         'classname'   => 'core_user_external',
353         'methodname'  => 'create_users',
354         'classpath'   => 'user/externallib.php',
355         'description' => 'Create users.',
356         'type'        => 'write',
357         'capabilities'=> 'moodle/user:create',
358     ),
360     'core_user_get_users' => array(
361         'classname'   => 'core_user_external',
362         'methodname'  => 'get_users',
363         'classpath'   => 'user/externallib.php',
364         'description' => 'search for users matching the parameters',
365         'type'        => 'read',
366         'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
367     ),
369     'moodle_user_get_users_by_id' => array(
370         'classname'   => 'core_user_external',
371         'methodname'  => 'get_users_by_id',
372         'classpath'   => 'user/externallib.php',
373         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_user_get_users_by_id()',
374         'type'        => 'read',
375         'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
376     ),
378     'core_user_get_users_by_field' => array(
379         'classname'   => 'core_user_external',
380         'methodname'  => 'get_users_by_field',
381         'classpath'   => 'user/externallib.php',
382         'description' => 'Retrieve users information for a specified unique field - If you want to do a user search, use core_user_get_users()',
383         'type'        => 'read',
384         'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
385     ),
387     'core_user_get_users_by_id' => array(
388         'classname'   => 'core_user_external',
389         'methodname'  => 'get_users_by_id',
390         'classpath'   => 'user/externallib.php',
391         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been replaced by core_user_get_users_by_field()',
392         'type'        => 'read',
393         'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
394     ),
396     'moodle_user_get_users_by_courseid' => array(
397         'classname'   => 'core_enrol_external',
398         'methodname'  => 'get_enrolled_users',
399         'classpath'   => 'enrol/externallib.php',
400         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_enrol_get_enrolled_users()',
401         'type'        => 'read',
402         'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups',
403     ),
405     'moodle_user_get_course_participants_by_id' => array(
406         'classname'   => 'core_user_external',
407         'methodname'  => 'get_course_user_profiles',
408         'classpath'   => 'user/externallib.php',
409         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_user_get_course_user_profiles()',
410         'type'        => 'read',
411         'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups',
412     ),
414     'core_user_get_course_user_profiles' => array(
415         'classname'   => 'core_user_external',
416         'methodname'  => 'get_course_user_profiles',
417         'classpath'   => 'user/externallib.php',
418         'description' => 'Get course user profiles (each of the profils matching a course id and a user id).',
419         'type'        => 'read',
420         'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups',
421     ),
423     'moodle_user_delete_users' => array(
424         'classname'   => 'core_user_external',
425         'methodname'  => 'delete_users',
426         'classpath'   => 'user/externallib.php',
427         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_user_delete_users()',
428         'type'        => 'write',
429         'capabilities'=> 'moodle/user:delete',
430     ),
432     'core_user_delete_users' => array(
433         'classname'   => 'core_user_external',
434         'methodname'  => 'delete_users',
435         'classpath'   => 'user/externallib.php',
436         'description' => 'Delete users.',
437         'type'        => 'write',
438         'capabilities'=> 'moodle/user:delete',
439     ),
441     'moodle_user_update_users' => array(
442         'classname'   => 'core_user_external',
443         'methodname'  => 'update_users',
444         'classpath'   => 'user/externallib.php',
445         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_user_update_users()',
446         'type'        => 'write',
447         'capabilities'=> 'moodle/user:update',
448     ),
450     'core_user_update_users' => array(
451         'classname'   => 'core_user_external',
452         'methodname'  => 'update_users',
453         'classpath'   => 'user/externallib.php',
454         'description' => 'Update users.',
455         'type'        => 'write',
456         'capabilities'=> 'moodle/user:update',
457     ),
459     'core_user_add_user_device' => array(
460         'classname'   => 'core_user_external',
461         'methodname'  => 'add_user_device',
462         'classpath'   => 'user/externallib.php',
463         'description' => 'Store mobile user devices information for PUSH Notifications.',
464         'type'        => 'write',
465         'capabilities'=> '',
466     ),
468     // === enrol related functions ===
470     'core_enrol_get_enrolled_users_with_capability' => array(
471         'classname'   => 'core_enrol_external',
472         'methodname'  => 'get_enrolled_users_with_capability',
473         'classpath'   => 'enrol/externallib.php',
474         'description' => 'For each course and capability specified, return a list of the users that are enrolled in the course
475                           and have that capability',
476         'type'        => 'read',
477     ),
479     'moodle_enrol_get_enrolled_users' => array(
480         'classname'   => 'moodle_enrol_external',
481         'methodname'  => 'get_enrolled_users',
482         'classpath'   => 'enrol/externallib.php',
483         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. Please use core_enrol_get_enrolled_users() (previously known as moodle_user_get_users_by_courseid).',
484         'type'        => 'read',
485         'capabilities'=> 'moodle/site:viewparticipants, moodle/course:viewparticipants,
486             moodle/role:review, moodle/site:accessallgroups, moodle/course:enrolreview',
487     ),
489     'core_enrol_get_enrolled_users' => array(
490         'classname'   => 'core_enrol_external',
491         'methodname'  => 'get_enrolled_users',
492         'classpath'   => 'enrol/externallib.php',
493         'description' => 'Get enrolled users by course id.',
494         'type'        => 'read',
495         'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups',
496     ),
498     'moodle_enrol_get_users_courses' => array(
499         'classname'   => 'core_enrol_external',
500         'methodname'  => 'get_users_courses',
501         'classpath'   => 'enrol/externallib.php',
502         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_enrol_get_users_courses()',
503         'type'        => 'read',
504         'capabilities'=> 'moodle/course:viewparticipants',
505     ),
507     'core_enrol_get_users_courses' => array(
508         'classname'   => 'core_enrol_external',
509         'methodname'  => 'get_users_courses',
510         'classpath'   => 'enrol/externallib.php',
511         'description' => 'Get the list of courses where a user is enrolled in',
512         'type'        => 'read',
513         'capabilities'=> 'moodle/course:viewparticipants',
514     ),
516     'core_enrol_get_course_enrolment_methods' => array(
517         'classname'   => 'core_enrol_external',
518         'methodname'  => 'get_course_enrolment_methods',
519         'classpath'   => 'enrol/externallib.php',
520         'description' => 'Get the list of course enrolment methods',
521         'type'        => 'read',
522     ),
524     // === Role related functions ===
526     'moodle_role_assign' => array(
527         'classname'   => 'core_role_external',
528         'methodname'  => 'assign_roles',
529         'classpath'   => 'enrol/externallib.php',
530         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_role_assign_role()',
531         'type'        => 'write',
532         'capabilities'=> 'moodle/role:assign',
533     ),
535     'core_role_assign_roles' => array(
536         'classname'   => 'core_role_external',
537         'methodname'  => 'assign_roles',
538         'classpath'   => 'enrol/externallib.php',
539         'description' => 'Manual role assignments.',
540         'type'        => 'write',
541         'capabilities'=> 'moodle/role:assign',
542     ),
544     'moodle_role_unassign' => array(
545         'classname'   => 'core_role_external',
546         'methodname'  => 'unassign_roles',
547         'classpath'   => 'enrol/externallib.php',
548         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_role_unassign_role()',
549         'type'        => 'write',
550         'capabilities'=> 'moodle/role:assign',
551     ),
553     'core_role_unassign_roles' => array(
554         'classname'   => 'core_role_external',
555         'methodname'  => 'unassign_roles',
556         'classpath'   => 'enrol/externallib.php',
557         'description' => 'Manual role unassignments.',
558         'type'        => 'write',
559         'capabilities'=> 'moodle/role:assign',
560     ),
562     // === course related functions ===
564     'core_course_get_contents' => array(
565         'classname'   => 'core_course_external',
566         'methodname'  => 'get_course_contents',
567         'classpath'   => 'course/externallib.php',
568         'description' => 'Get course contents',
569         'type'        => 'read',
570         'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
571     ),
573     'moodle_course_get_courses' => array(
574         'classname'   => 'core_course_external',
575         'methodname'  => 'get_courses',
576         'classpath'   => 'course/externallib.php',
577         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_course_get_courses()',
578         'type'        => 'read',
579         'capabilities'=> 'moodle/course:view,moodle/course:update,moodle/course:viewhiddencourses',
580     ),
582     'core_course_get_courses' => array(
583         'classname'   => 'core_course_external',
584         'methodname'  => 'get_courses',
585         'classpath'   => 'course/externallib.php',
586         'description' => 'Return course details',
587         'type'        => 'read',
588         'capabilities'=> 'moodle/course:view,moodle/course:update,moodle/course:viewhiddencourses',
589     ),
591     'moodle_course_create_courses' => array(
592         'classname'   => 'core_course_external',
593         'methodname'  => 'create_courses',
594         'classpath'   => 'course/externallib.php',
595         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_course_create_courses()',
596         'type'        => 'write',
597         'capabilities'=> 'moodle/course:create,moodle/course:visibility',
598     ),
600     'core_course_create_courses' => array(
601         'classname'   => 'core_course_external',
602         'methodname'  => 'create_courses',
603         'classpath'   => 'course/externallib.php',
604         'description' => 'Create new courses',
605         'type'        => 'write',
606         'capabilities'=> 'moodle/course:create,moodle/course:visibility',
607     ),
609     'core_course_delete_courses' => array(
610         'classname'   => 'core_course_external',
611         'methodname'  => 'delete_courses',
612         'classpath'   => 'course/externallib.php',
613         'description' => 'Deletes all specified courses',
614         'type'        => 'write',
615         'capabilities'=> 'moodle/course:delete',
616     ),
618     'core_course_delete_modules' => array(
619         'classname' => 'core_course_external',
620         'methodname' => 'delete_modules',
621         'classpath' => 'course/externallib.php',
622         'description' => 'Deletes all specified module instances',
623         'type' => 'write',
624         'capabilities' => 'moodle/course:manageactivities'
625     ),
627     'core_course_duplicate_course' => array(
628         'classname'   => 'core_course_external',
629         'methodname'  => 'duplicate_course',
630         'classpath'   => 'course/externallib.php',
631         'description' => 'Duplicate an existing course (creating a new one) without user data',
632         'type'        => 'write',
633         'capabilities'=> 'moodle/backup:backupcourse,moodle/restore:restorecourse,moodle/course:create',
634     ),
636     'core_course_update_courses' => array(
637         'classname'   => 'core_course_external',
638         'methodname'  => 'update_courses',
639         'classpath'   => 'course/externallib.php',
640         'description' => 'Update courses',
641         'type'        => 'write',
642         'capabilities'=> 'moodle/course:update,moodle/course:changecategory,moodle/course:changefullname,moodle/course:changeshortname,moodle/course:changeidnumber,moodle/course:changesummary,moodle/course:visibility',
643     ),
645     // === course category related functions ===
647     'core_course_get_categories' => array(
648         'classname'   => 'core_course_external',
649         'methodname'  => 'get_categories',
650         'classpath'   => 'course/externallib.php',
651         'description' => 'Return category details',
652         'type'        => 'read',
653         'capabilities'=> 'moodle/category:viewhiddencategories',
654     ),
656     'core_course_create_categories' => array(
657         'classname'   => 'core_course_external',
658         'methodname'  => 'create_categories',
659         'classpath'   => 'course/externallib.php',
660         'description' => 'Create course categories',
661         'type'        => 'write',
662         'capabilities'=> 'moodle/category:manage',
663     ),
665     'core_course_update_categories' => array(
666         'classname'   => 'core_course_external',
667         'methodname'  => 'update_categories',
668         'classpath'   => 'course/externallib.php',
669         'description' => 'Update categories',
670         'type'        => 'write',
671         'capabilities'=> 'moodle/category:manage',
672     ),
674     'core_course_delete_categories' => array(
675         'classname'   => 'core_course_external',
676         'methodname'  => 'delete_categories',
677         'classpath'   => 'course/externallib.php',
678         'description' => 'Delete course categories',
679         'type'        => 'write',
680         'capabilities'=> 'moodle/category:manage',
681     ),
683     'core_course_import_course' => array(
684         'classname'   => 'core_course_external',
685         'methodname'  => 'import_course',
686         'classpath'   => 'course/externallib.php',
687         'description' => 'Import course data from a course into another course. Does not include any user data.',
688         'type'        => 'write',
689         'capabilities'=> 'moodle/backup:backuptargetimport, moodle/restore:restoretargetimport',
690     ),
692     // === message related functions ===
694     'moodle_message_send_instantmessages' => array(
695         'classname'   => 'core_message_external',
696         'methodname'  => 'send_instant_messages',
697         'classpath'   => 'message/externallib.php',
698         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_message_send_instant_messages()',
699         'type'        => 'write',
700         'capabilities'=> 'moodle/site:sendmessage',
701     ),
703     'core_message_send_instant_messages' => array(
704         'classname'   => 'core_message_external',
705         'methodname'  => 'send_instant_messages',
706         'classpath'   => 'message/externallib.php',
707         'description' => 'Send instant messages',
708         'type'        => 'write',
709         'capabilities'=> 'moodle/site:sendmessage',
710     ),
712     'core_message_create_contacts' => array(
713         'classname'   => 'core_message_external',
714         'methodname'  => 'create_contacts',
715         'classpath'   => 'message/externallib.php',
716         'description' => 'Add contacts to the contact list',
717         'type'        => 'write',
718         'capabilities'=> '',
719     ),
721     'core_message_delete_contacts' => array(
722         'classname'   => 'core_message_external',
723         'methodname'  => 'delete_contacts',
724         'classpath'   => 'message/externallib.php',
725         'description' => 'Remove contacts from the contact list',
726         'type'        => 'write',
727         'capabilities'=> '',
728     ),
730     'core_message_block_contacts' => array(
731         'classname'   => 'core_message_external',
732         'methodname'  => 'block_contacts',
733         'classpath'   => 'message/externallib.php',
734         'description' => 'Block contacts',
735         'type'        => 'write',
736         'capabilities'=> '',
737     ),
739     'core_message_unblock_contacts' => array(
740         'classname'   => 'core_message_external',
741         'methodname'  => 'unblock_contacts',
742         'classpath'   => 'message/externallib.php',
743         'description' => 'Unblock contacts',
744         'type'        => 'write',
745         'capabilities'=> '',
746     ),
748     'core_message_get_contacts' => array(
749         'classname'   => 'core_message_external',
750         'methodname'  => 'get_contacts',
751         'classpath'   => 'message/externallib.php',
752         'description' => 'Retrieve the contact list',
753         'type'        => 'read',
754         'capabilities'=> '',
755     ),
757     'core_message_search_contacts' => array(
758         'classname'   => 'core_message_external',
759         'methodname'  => 'search_contacts',
760         'classpath'   => 'message/externallib.php',
761         'description' => 'Search for contacts',
762         'type'        => 'read',
763         'capabilities'=> '',
764     ),
766     // === notes related functions ===
768     'moodle_notes_create_notes' => array(
769         'classname'   => 'core_notes_external',
770         'methodname'  => 'create_notes',
771         'classpath'   => 'notes/externallib.php',
772         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_notes_create_notes()',
773         'type'        => 'write',
774         'capabilities'=> 'moodle/notes:manage',
775     ),
777     'core_notes_create_notes' => array(
778         'classname'   => 'core_notes_external',
779         'methodname'  => 'create_notes',
780         'classpath'   => 'notes/externallib.php',
781         'description' => 'Create notes',
782         'type'        => 'write',
783         'capabilities'=> 'moodle/notes:manage',
784     ),
786     'core_notes_delete_notes' => array(
787         'classname'   => 'core_notes_external',
788         'methodname'  => 'delete_notes',
789         'classpath'   => 'notes/externallib.php',
790         'description' => 'Delete notes',
791         'type'        => 'write',
792         'capabilities'=> 'moodle/notes:manage',
793     ),
795     'core_notes_get_notes' => array(
796         'classname'   => 'core_notes_external',
797         'methodname'  => 'get_notes',
798         'classpath'   => 'notes/externallib.php',
799         'description' => 'Get notes',
800         'type'        => 'read',
801         'capabilities'=> 'moodle/notes:view',
802     ),
804     'core_notes_update_notes' => array(
805         'classname'   => 'core_notes_external',
806         'methodname'  => 'update_notes',
807         'classpath'   => 'notes/externallib.php',
808         'description' => 'Update notes',
809         'type'        => 'write',
810         'capabilities'=> 'moodle/notes:manage',
811     ),
813     // === grading related functions ===
815     'core_grading_get_definitions' => array(
816         'classname'   => 'core_grading_external',
817         'methodname'  => 'get_definitions',
818         'description' => 'Get grading definitions',
819         'type'        => 'read'
820     ),
822     'core_grade_get_definitions' => array(
823         'classname'   => 'core_grade_external',
824         'methodname'  => 'get_definitions',
825         'classpath'   => 'grade/externallib.php',
826         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_grading_get_definitions()',
827         'type'        => 'read'
828     ),
830     'core_grading_get_gradingform_instances' => array(
831         'classname'   => 'core_grading_external',
832         'methodname'  => 'get_gradingform_instances',
833         'description' => 'Get grading form instances',
834         'type'        => 'read'
835     ),
837     // === webservice related functions ===
839     'moodle_webservice_get_siteinfo' => array(
840         'classname'   => 'core_webservice_external',
841         'methodname'  => 'get_site_info',
842         'classpath'   => 'webservice/externallib.php',
843         'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_webservice_get_site_info()',
844         'type'        => 'read',
845     ),
847     'core_webservice_get_site_info' => array(
848         'classname'   => 'core_webservice_external',
849         'methodname'  => 'get_site_info',
850         'classpath'   => 'webservice/externallib.php',
851         'description' => 'Return some site info / user info / list web service functions',
852         'type'        => 'read',
853     ),
855     'core_get_string' => array(
856         'classname'   => 'core_external',
857         'methodname'  => 'get_string',
858         'classpath'   => 'lib/external/externallib.php',
859         'description' => 'Return a translated string - similar to core get_string() call',
860         'type'        => 'read',
861     ),
863     'core_get_strings' => array(
864         'classname'   => 'core_external',
865         'methodname'  => 'get_strings',
866         'classpath'   => 'lib/external/externallib.php',
867         'description' => 'Return some translated strings - like several core get_string() calls',
868         'type'        => 'read',
869     ),
871     'core_get_component_strings' => array(
872         'classname'   => 'core_external',
873         'methodname'  => 'get_component_strings',
874         'classpath'   => 'lib/external/externallib.php',
875         'description' => 'Return all raw strings (with {$a->xxx}) for a specific component
876             - similar to core get_component_strings() call',
877         'type'        => 'read',
878     ),
881     // === Calendar related functions ===
883     'core_calendar_delete_calendar_events' => array(
884         'classname'   => 'core_calendar_external',
885         'methodname'  => 'delete_calendar_events',
886         'description' => 'Delete calendar events',
887         'classpath'   => 'calendar/externallib.php',
888         'type'        => 'write',
889         'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries'
890     ),
893     'core_calendar_get_calendar_events' => array(
894         'classname'   => 'core_calendar_external',
895         'methodname'  => 'get_calendar_events',
896         'description' => 'Get calendar events',
897         'classpath'   => 'calendar/externallib.php',
898         'type'        => 'read',
899         'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries'
900     ),
902     'core_calendar_create_calendar_events' => array(
903         'classname'   => 'core_calendar_external',
904         'methodname'  => 'create_calendar_events',
905         'description' => 'Create calendar events',
906         'classpath'   => 'calendar/externallib.php',
907         'type'        => 'write',
908         'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries'
909     ),
910 );
912 $services = array(
913    'Moodle mobile web service'  => array(
914         'functions' => array (
915             'moodle_enrol_get_users_courses',
916             'moodle_enrol_get_enrolled_users',
917             'moodle_user_get_users_by_id',
918             'moodle_webservice_get_siteinfo',
919             'moodle_notes_create_notes',
920             'moodle_user_get_course_participants_by_id',
921             'moodle_user_get_users_by_courseid',
922             'moodle_message_send_instantmessages',
923             'core_course_get_contents',
924             'core_get_component_strings',
925             'core_user_add_user_device',
926             'core_calendar_get_calendar_events',
927             'core_enrol_get_users_courses',
928             'core_enrol_get_enrolled_users',
929             'core_user_get_users_by_id',
930             'core_webservice_get_site_info',
931             'core_notes_create_notes',
932             'core_user_get_course_user_profiles',
933             'core_enrol_get_enrolled_users',
934             'core_message_send_instant_messages',
935             'mod_assign_get_grades',
936             'mod_assign_get_assignments',
937             'mod_assign_get_submissions',
938             'mod_assign_get_user_flags',
939             'mod_assign_set_user_flags',
940             'mod_assign_get_user_mappings',
941             'mod_assign_revert_submissions_to_draft',
942             'mod_assign_lock_submissions',
943             'mod_assign_unlock_submissions',
944             'mod_assign_save_submission',
945             'mod_assign_submit_for_grading',
946             'mod_assign_save_grade',
947             'mod_assign_save_user_extensions',
948             'mod_assign_reveal_identities'),
949         'enabled' => 0,
950         'restrictedusers' => 0,
951         'shortname' => MOODLE_OFFICIAL_MOBILE_SERVICE,
952         'downloadfiles' => 1,
953         'uploadfiles' => 1
954     ),
955 );