MDL-49008 lang: Revert unnecessary rename warning
[moodle.git] / lib / db / services.php
CommitLineData
9a0df45a 1<?php
9a0df45a 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/>.
16
a0a07014 17
9a0df45a 18/**
19 * Core external functions and service definitions.
20 *
39b90b51
EL
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 *
a0a07014
JM
30 * @package core_webservice
31 * @category webservice
32 * @copyright 2009 Petr Skodak
9a0df45a 33 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
34 */
35
36$functions = array(
ef22c1b6 37
088645e2
AB
38 // Cohort related functions.
39
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 ),
48
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 ),
57
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 ),
66
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 ),
75
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 ),
84
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 ),
93
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 ),
198e802f 102 // Grade related functions.
d3549931 103
198e802f
JL
104 'core_grades_get_grades' => array(
105 'classname' => 'core_grades_external',
106 'methodname' => 'get_grades',
a0095e5a
JL
107 'description' => 'Returns student course total grade and grades for activities.
108 This function does not return category or manual items.
109 This function is suitable for managers or teachers not students.',
198e802f 110 'type' => 'read',
a0095e5a 111 'capabilities' => 'moodle/grade:view, moodle/grade:viewall, moodle/grade:viewhidden',
d3549931
AD
112 ),
113
198e802f
JL
114 'core_grades_update_grades' => array(
115 'classname' => 'core_grades_external',
116 'methodname' => 'update_grades',
198e802f
JL
117 'description' => 'Update a grade item and associated student grades.',
118 'type' => 'write',
119 'capabilities' => '',
d3549931 120 ),
088645e2 121
ef22c1b6 122 // === group related functions ===
f5072177 123
9a0df45a 124 'moodle_group_create_groups' => array(
3c1aa6fd 125 'classname' => 'moodle_group_external',
5d1017e1
JM
126 'methodname' => 'create_groups',
127 'classpath' => 'group/externallib.php',
3c1aa6fd 128 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_group_create_groups(). ',
5d1017e1
JM
129 'type' => 'write',
130 'capabilities'=> 'moodle/course:managegroups',
131 ),
132
133 'core_group_create_groups' => array(
134 'classname' => 'core_group_external',
9a0df45a 135 'methodname' => 'create_groups',
136 'classpath' => 'group/externallib.php',
f5072177 137 'description' => 'Creates new groups.',
138 'type' => 'write',
72f68b51 139 'capabilities'=> 'moodle/course:managegroups',
9a0df45a 140 ),
f5072177 141
9a0df45a 142 'moodle_group_get_groups' => array(
3c1aa6fd 143 'classname' => 'moodle_group_external',
5d1017e1
JM
144 'methodname' => 'get_groups',
145 'classpath' => 'group/externallib.php',
3c1aa6fd 146 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_group_get_groups()',
5d1017e1
JM
147 'type' => 'read',
148 'capabilities'=> 'moodle/course:managegroups',
149 ),
150
151 'core_group_get_groups' => array(
152 'classname' => 'core_group_external',
9a0df45a 153 'methodname' => 'get_groups',
154 'classpath' => 'group/externallib.php',
cfb99b75 155 'description' => 'Returns group details.',
f5072177 156 'type' => 'read',
72f68b51 157 'capabilities'=> 'moodle/course:managegroups',
9a0df45a 158 ),
246f6da2 159
160 'moodle_group_get_course_groups' => array(
3c1aa6fd 161 'classname' => 'moodle_group_external',
5d1017e1
JM
162 'methodname' => 'get_course_groups',
163 'classpath' => 'group/externallib.php',
3c1aa6fd 164 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_group_get_course_groups()',
5d1017e1
JM
165 'type' => 'read',
166 'capabilities'=> 'moodle/course:managegroups',
167 ),
168
169 'core_group_get_course_groups' => array(
170 'classname' => 'core_group_external',
246f6da2 171 'methodname' => 'get_course_groups',
172 'classpath' => 'group/externallib.php',
173 'description' => 'Returns all groups in specified course.',
174 'type' => 'read',
72f68b51 175 'capabilities'=> 'moodle/course:managegroups',
246f6da2 176 ),
2cb1ee78 177
9a0df45a 178 'moodle_group_delete_groups' => array(
3c1aa6fd 179 'classname' => 'moodle_group_external',
5d1017e1
JM
180 'methodname' => 'delete_groups',
181 'classpath' => 'group/externallib.php',
3c1aa6fd 182 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_group_delete_groups()',
5d1017e1
JM
183 'type' => 'delete',
184 'capabilities'=> 'moodle/course:managegroups',
185 ),
186
187 'core_group_delete_groups' => array(
188 'classname' => 'core_group_external',
9a0df45a 189 'methodname' => 'delete_groups',
190 'classpath' => 'group/externallib.php',
0f4e72de
PS
191 'description' => 'Deletes all specified groups.',
192 'type' => 'delete',
72f68b51 193 'capabilities'=> 'moodle/course:managegroups',
9a0df45a 194 ),
c863dc38 195
9a0df45a 196 'moodle_group_get_groupmembers' => array(
3c1aa6fd
DM
197 'classname' => 'moodle_group_external',
198 'methodname' => 'get_groupmembers',
5d1017e1 199 'classpath' => 'group/externallib.php',
3c1aa6fd 200 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_group_get_group_members()',
5d1017e1
JM
201 'type' => 'read',
202 'capabilities'=> 'moodle/course:managegroups',
203 ),
204
205 'core_group_get_group_members' => array(
206 'classname' => 'core_group_external',
207 'methodname' => 'get_group_members',
9a0df45a 208 'classpath' => 'group/externallib.php',
0f4e72de
PS
209 'description' => 'Returns group members.',
210 'type' => 'read',
72f68b51 211 'capabilities'=> 'moodle/course:managegroups',
9a0df45a 212 ),
4efa2483 213
9a0df45a 214 'moodle_group_add_groupmembers' => array(
3c1aa6fd
DM
215 'classname' => 'moodle_group_external',
216 'methodname' => 'add_groupmembers',
5d1017e1 217 'classpath' => 'group/externallib.php',
3c1aa6fd 218 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_group_add_group_members()',
5d1017e1
JM
219 'type' => 'write',
220 'capabilities'=> 'moodle/course:managegroups',
221 ),
222
223 'core_group_add_group_members' => array(
224 'classname' => 'core_group_external',
225 'methodname' => 'add_group_members',
9a0df45a 226 'classpath' => 'group/externallib.php',
0f4e72de
PS
227 'description' => 'Adds group members.',
228 'type' => 'write',
72f68b51 229 'capabilities'=> 'moodle/course:managegroups',
9a0df45a 230 ),
231
232 'moodle_group_delete_groupmembers' => array(
3c1aa6fd
DM
233 'classname' => 'moodle_group_external',
234 'methodname' => 'delete_groupmembers',
9a0df45a 235 'classpath' => 'group/externallib.php',
3c1aa6fd 236 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_group_delete_group_members()',
0f4e72de 237 'type' => 'delete',
72f68b51 238 'capabilities'=> 'moodle/course:managegroups',
9a0df45a 239 ),
72f68b51 240
5d1017e1
JM
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 ),
72f68b51 249
7ce23590
JL
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 ),
257
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 ),
265
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 ),
273
274 'core_group_get_course_groupings' => array(
67aa60f9
JL
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',
7ce23590
JL
280 ),
281
282 'core_group_delete_groupings' => array(
67aa60f9
JL
283 'classname' => 'core_group_external',
284 'methodname' => 'delete_groupings',
285 'classpath' => 'group/externallib.php',
286 'description' => 'Deletes all specified groupings.',
287 'type' => 'write',
7ce23590
JL
288 ),
289
290 'core_group_assign_grouping' => array(
67aa60f9
JL
291 'classname' => 'core_group_external',
292 'methodname' => 'assign_grouping',
293 'classpath' => 'group/externallib.php',
294 'description' => 'Assing groups from groupings',
295 'type' => 'write',
7ce23590
JL
296 ),
297
298 'core_group_unassign_grouping' => array(
67aa60f9
JL
299 'classname' => 'core_group_external',
300 'methodname' => 'unassign_grouping',
301 'classpath' => 'group/externallib.php',
302 'description' => 'Unassing groups from groupings',
303 'type' => 'write',
7ce23590
JL
304 ),
305
5d62e813
JL
306 'core_group_get_course_user_groups' => array(
307 'classname' => 'core_group_external',
308 'methodname' => 'get_course_user_groups',
309 'classpath' => 'group/externallib.php',
310 'description' => 'Returns all groups in specified course for the specified user.',
311 'type' => 'read',
312 'capabilities' => 'moodle/course:managegroups',
313 ),
314
72f68b51 315 // === file related functions ===
316
249c4f60 317 'moodle_file_get_files' => array(
3c1aa6fd 318 'classname' => 'moodle_file_external',
5d1017e1 319 'methodname' => 'get_files',
3c1aa6fd 320 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_files_get_files()',
5d1017e1
JM
321 'type' => 'read',
322 'classpath' => 'files/externallib.php',
323 ),
324
325 'core_files_get_files' => array(
326 'classname' => 'core_files_external',
249c4f60
DC
327 'methodname' => 'get_files',
328 'description' => 'browse moodle files',
329 'type' => 'read',
330 'classpath' => 'files/externallib.php',
331 ),
5d1017e1 332
249c4f60 333 'moodle_file_upload' => array(
3c1aa6fd 334 'classname' => 'moodle_file_external',
5d1017e1 335 'methodname' => 'upload',
3c1aa6fd 336 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_files_upload()',
5d1017e1
JM
337 'type' => 'write',
338 'classpath' => 'files/externallib.php',
339 ),
340
341 'core_files_upload' => array(
342 'classname' => 'core_files_external',
249c4f60
DC
343 'methodname' => 'upload',
344 'description' => 'upload a file to moodle',
345 'type' => 'write',
346 'classpath' => 'files/externallib.php',
347 ),
4efa2483 348
ef22c1b6 349 // === user related functions ===
72f68b51 350
ef22c1b6 351 'moodle_user_create_users' => array(
3c1aa6fd 352 'classname' => 'moodle_user_external',
5d1017e1
JM
353 'methodname' => 'create_users',
354 'classpath' => 'user/externallib.php',
3c1aa6fd 355 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_user_create_users()',
5d1017e1
JM
356 'type' => 'write',
357 'capabilities'=> 'moodle/user:create',
358 ),
359
360 'core_user_create_users' => array(
361 'classname' => 'core_user_external',
ef22c1b6 362 'methodname' => 'create_users',
363 'classpath' => 'user/externallib.php',
fb79269b 364 'description' => 'Create users.',
365 'type' => 'write',
72f68b51 366 'capabilities'=> 'moodle/user:create',
ef22c1b6 367 ),
368
b0365ea5
JM
369 'core_user_get_users' => array(
370 'classname' => 'core_user_external',
371 'methodname' => 'get_users',
372 'classpath' => 'user/externallib.php',
373 'description' => 'search for users matching the parameters',
374 'type' => 'read',
375 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
376 ),
377
fb79269b 378 'moodle_user_get_users_by_id' => array(
3c1aa6fd 379 'classname' => 'moodle_user_external',
5d1017e1
JM
380 'methodname' => 'get_users_by_id',
381 'classpath' => 'user/externallib.php',
3c1aa6fd 382 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. Use core_user_get_users_by_field service instead',
5d1017e1
JM
383 'type' => 'read',
384 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
385 ),
386
c70b9853 387 'core_user_get_users_by_field' => array(
86477112 388 'classname' => 'core_user_external',
c70b9853 389 'methodname' => 'get_users_by_field',
86477112 390 'classpath' => 'user/externallib.php',
c70b9853 391 'description' => 'Retrieve users information for a specified unique field - If you want to do a user search, use core_user_get_users()',
86477112
FS
392 'type' => 'read',
393 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
394 ),
395
5d1017e1
JM
396 'core_user_get_users_by_id' => array(
397 'classname' => 'core_user_external',
fb79269b 398 'methodname' => 'get_users_by_id',
ef22c1b6 399 'classpath' => 'user/externallib.php',
41f5285f 400 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been replaced by core_user_get_users_by_field()',
fb79269b 401 'type' => 'read',
b4c74367 402 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
ef22c1b6 403 ),
404
01479290 405 'moodle_user_get_users_by_courseid' => array(
3c1aa6fd
DM
406 'classname' => 'moodle_user_external',
407 'methodname' => 'get_users_by_courseid',
408 'classpath' => 'user/externallib.php',
409 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_enrol_get_enrolled_users()',
01479290
DC
410 'type' => 'read',
411 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups',
412 ),
413
ea4e96c2 414 'moodle_user_get_course_participants_by_id' => array(
3c1aa6fd
DM
415 'classname' => 'moodle_user_external',
416 'methodname' => 'get_course_participants_by_id',
ea4e96c2 417 'classpath' => 'user/externallib.php',
3c1aa6fd 418 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_user_get_course_user_profiles()',
5d1017e1
JM
419 'type' => 'read',
420 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups',
421 ),
422
423 'core_user_get_course_user_profiles' => array(
424 'classname' => 'core_user_external',
425 'methodname' => 'get_course_user_profiles',
426 'classpath' => 'user/externallib.php',
427 'description' => 'Get course user profiles (each of the profils matching a course id and a user id).',
ea4e96c2
DC
428 'type' => 'read',
429 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups',
430 ),
431
ef22c1b6 432 'moodle_user_delete_users' => array(
3c1aa6fd 433 'classname' => 'moodle_user_external',
5d1017e1
JM
434 'methodname' => 'delete_users',
435 'classpath' => 'user/externallib.php',
3c1aa6fd 436 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_user_delete_users()',
5d1017e1
JM
437 'type' => 'write',
438 'capabilities'=> 'moodle/user:delete',
439 ),
440
441 'core_user_delete_users' => array(
442 'classname' => 'core_user_external',
ef22c1b6 443 'methodname' => 'delete_users',
444 'classpath' => 'user/externallib.php',
fb79269b 445 'description' => 'Delete users.',
446 'type' => 'write',
72f68b51 447 'capabilities'=> 'moodle/user:delete',
ef22c1b6 448 ),
449
450 'moodle_user_update_users' => array(
3c1aa6fd 451 'classname' => 'moodle_user_external',
5d1017e1
JM
452 'methodname' => 'update_users',
453 'classpath' => 'user/externallib.php',
3c1aa6fd 454 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_user_update_users()',
5d1017e1
JM
455 'type' => 'write',
456 'capabilities'=> 'moodle/user:update',
457 ),
458
459 'core_user_update_users' => array(
460 'classname' => 'core_user_external',
ef22c1b6 461 'methodname' => 'update_users',
462 'classpath' => 'user/externallib.php',
fb79269b 463 'description' => 'Update users.',
464 'type' => 'write',
72f68b51 465 'capabilities'=> 'moodle/user:update',
ef22c1b6 466 ),
e9b66095 467
6a403810
JL
468 'core_user_add_user_device' => array(
469 'classname' => 'core_user_external',
470 'methodname' => 'add_user_device',
471 'classpath' => 'user/externallib.php',
472 'description' => 'Store mobile user devices information for PUSH Notifications.',
473 'type' => 'write',
474 'capabilities'=> '',
475 ),
476
72f68b51 477 // === enrol related functions ===
d0068cd0 478
b6b6c7ac
PC
479 'core_enrol_get_enrolled_users_with_capability' => array(
480 'classname' => 'core_enrol_external',
481 'methodname' => 'get_enrolled_users_with_capability',
482 'classpath' => 'enrol/externallib.php',
483 'description' => 'For each course and capability specified, return a list of the users that are enrolled in the course
484 and have that capability',
485 'type' => 'read',
486 ),
72f68b51 487
df997f84
PS
488 'moodle_enrol_get_enrolled_users' => array(
489 'classname' => 'moodle_enrol_external',
490 'methodname' => 'get_enrolled_users',
491 'classpath' => 'enrol/externallib.php',
5d1017e1 492 '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).',
df997f84 493 'type' => 'read',
72f68b51 494 'capabilities'=> 'moodle/site:viewparticipants, moodle/course:viewparticipants,
495 moodle/role:review, moodle/site:accessallgroups, moodle/course:enrolreview',
df997f84 496 ),
e6acc551 497
5d1017e1
JM
498 'core_enrol_get_enrolled_users' => array(
499 'classname' => 'core_enrol_external',
500 'methodname' => 'get_enrolled_users',
501 'classpath' => 'enrol/externallib.php',
502 'description' => 'Get enrolled users by course id.',
503 'type' => 'read',
504 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups',
505 ),
df997f84 506
3364dbb5 507 'moodle_enrol_get_users_courses' => array(
3c1aa6fd 508 'classname' => 'moodle_enrol_external',
3364dbb5
PS
509 'methodname' => 'get_users_courses',
510 'classpath' => 'enrol/externallib.php',
3c1aa6fd 511 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_enrol_get_users_courses()',
3364dbb5
PS
512 'type' => 'read',
513 'capabilities'=> 'moodle/course:viewparticipants',
514 ),
515
5d1017e1
JM
516 'core_enrol_get_users_courses' => array(
517 'classname' => 'core_enrol_external',
518 'methodname' => 'get_users_courses',
519 'classpath' => 'enrol/externallib.php',
520 'description' => 'Get the list of courses where a user is enrolled in',
521 'type' => 'read',
522 'capabilities'=> 'moodle/course:viewparticipants',
523 ),
524
be9bf94e
RT
525 'core_enrol_get_course_enrolment_methods' => array(
526 'classname' => 'core_enrol_external',
527 'methodname' => 'get_course_enrolment_methods',
528 'classpath' => 'enrol/externallib.php',
529 'description' => 'Get the list of course enrolment methods',
530 'type' => 'read',
531 ),
532
5d1017e1
JM
533 // === Role related functions ===
534
df997f84 535 'moodle_role_assign' => array(
3c1aa6fd
DM
536 'classname' => 'moodle_enrol_external',
537 'methodname' => 'role_assign',
5d1017e1 538 'classpath' => 'enrol/externallib.php',
3c1aa6fd 539 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_role_assign_role()',
5d1017e1
JM
540 'type' => 'write',
541 'capabilities'=> 'moodle/role:assign',
542 ),
543
544 'core_role_assign_roles' => array(
545 'classname' => 'core_role_external',
546 'methodname' => 'assign_roles',
e9b66095 547 'classpath' => 'enrol/externallib.php',
df997f84 548 'description' => 'Manual role assignments.',
e9b66095 549 'type' => 'write',
72f68b51 550 'capabilities'=> 'moodle/role:assign',
e9b66095 551 ),
552
df997f84 553 'moodle_role_unassign' => array(
3c1aa6fd
DM
554 'classname' => 'moodle_enrol_external',
555 'methodname' => 'role_unassign',
5d1017e1 556 'classpath' => 'enrol/externallib.php',
3c1aa6fd 557 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_role_unassign_role()',
5d1017e1
JM
558 'type' => 'write',
559 'capabilities'=> 'moodle/role:assign',
560 ),
561
562 'core_role_unassign_roles' => array(
563 'classname' => 'core_role_external',
564 'methodname' => 'unassign_roles',
e9b66095 565 'classpath' => 'enrol/externallib.php',
df997f84 566 'description' => 'Manual role unassignments.',
e9b66095 567 'type' => 'write',
72f68b51 568 'capabilities'=> 'moodle/role:assign',
e9b66095 569 ),
5b4a78e2 570
6bb31e40 571 // === course related functions ===
572
3ec163dd 573 'core_course_get_contents' => array(
d4a246bc 574 'classname' => 'core_course_external',
3ec163dd 575 'methodname' => 'get_course_contents',
d4a246bc 576 'classpath' => 'course/externallib.php',
3ec163dd 577 'description' => 'Get course contents',
d4a246bc 578 'type' => 'read',
3ec163dd 579 'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
f2229c68 580 ),
d6ebe011 581
6bb31e40 582 'moodle_course_get_courses' => array(
3c1aa6fd 583 'classname' => 'moodle_course_external',
5d1017e1
JM
584 'methodname' => 'get_courses',
585 'classpath' => 'course/externallib.php',
3c1aa6fd 586 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_course_get_courses()',
5d1017e1
JM
587 'type' => 'read',
588 'capabilities'=> 'moodle/course:view,moodle/course:update,moodle/course:viewhiddencourses',
589 ),
590
591 'core_course_get_courses' => array(
592 'classname' => 'core_course_external',
6bb31e40 593 'methodname' => 'get_courses',
594 'classpath' => 'course/externallib.php',
595 'description' => 'Return course details',
596 'type' => 'read',
597 'capabilities'=> 'moodle/course:view,moodle/course:update,moodle/course:viewhiddencourses',
598 ),
599
600 'moodle_course_create_courses' => array(
3c1aa6fd 601 'classname' => 'moodle_course_external',
5d1017e1
JM
602 'methodname' => 'create_courses',
603 'classpath' => 'course/externallib.php',
3c1aa6fd 604 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_course_create_courses()',
5d1017e1
JM
605 'type' => 'write',
606 'capabilities'=> 'moodle/course:create,moodle/course:visibility',
607 ),
608
609 'core_course_create_courses' => array(
610 'classname' => 'core_course_external',
6bb31e40 611 'methodname' => 'create_courses',
612 'classpath' => 'course/externallib.php',
613 'description' => 'Create new courses',
614 'type' => 'write',
615 'capabilities'=> 'moodle/course:create,moodle/course:visibility',
616 ),
617
63a85dc7
JL
618 'core_course_delete_courses' => array(
619 'classname' => 'core_course_external',
620 'methodname' => 'delete_courses',
621 'classpath' => 'course/externallib.php',
622 'description' => 'Deletes all specified courses',
623 'type' => 'write',
624 'capabilities'=> 'moodle/course:delete',
625 ),
626
79949c1b
MN
627 'core_course_delete_modules' => array(
628 'classname' => 'core_course_external',
629 'methodname' => 'delete_modules',
630 'classpath' => 'course/externallib.php',
631 'description' => 'Deletes all specified module instances',
632 'type' => 'write',
633 'capabilities' => 'moodle/course:manageactivities'
634 ),
635
3dc1d76e
JL
636 'core_course_duplicate_course' => array(
637 'classname' => 'core_course_external',
638 'methodname' => 'duplicate_course',
639 'classpath' => 'course/externallib.php',
640 'description' => 'Duplicate an existing course (creating a new one) without user data',
641 'type' => 'write',
642 'capabilities'=> 'moodle/backup:backupcourse,moodle/restore:restorecourse,moodle/course:create',
643 ),
644
791723c3
RT
645 'core_course_update_courses' => array(
646 'classname' => 'core_course_external',
647 'methodname' => 'update_courses',
648 'classpath' => 'course/externallib.php',
649 'description' => 'Update courses',
650 'type' => 'write',
651 'capabilities'=> 'moodle/course:update,moodle/course:changecategory,moodle/course:changefullname,moodle/course:changeshortname,moodle/course:changeidnumber,moodle/course:changesummary,moodle/course:visibility',
652 ),
653
3ec163dd
EL
654 // === course category related functions ===
655
656 'core_course_get_categories' => array(
657 'classname' => 'core_course_external',
658 'methodname' => 'get_categories',
659 'classpath' => 'course/externallib.php',
660 'description' => 'Return category details',
661 'type' => 'read',
662 'capabilities'=> 'moodle/category:viewhiddencategories',
663 ),
664
479a5db1
FS
665 'core_course_create_categories' => array(
666 'classname' => 'core_course_external',
667 'methodname' => 'create_categories',
668 'classpath' => 'course/externallib.php',
669 'description' => 'Create course categories',
670 'type' => 'write',
671 'capabilities'=> 'moodle/category:manage',
672 ),
d6ebe011 673
3ec163dd
EL
674 'core_course_update_categories' => array(
675 'classname' => 'core_course_external',
676 'methodname' => 'update_categories',
677 'classpath' => 'course/externallib.php',
678 'description' => 'Update categories',
679 'type' => 'write',
afe27edc 680 'capabilities'=> 'moodle/category:manage',
3ec163dd
EL
681 ),
682
2f951d86
FS
683 'core_course_delete_categories' => array(
684 'classname' => 'core_course_external',
685 'methodname' => 'delete_categories',
686 'classpath' => 'course/externallib.php',
687 'description' => 'Delete course categories',
688 'type' => 'write',
689 'capabilities'=> 'moodle/category:manage',
690 ),
479a5db1 691
8430d87b
JL
692 'core_course_import_course' => array(
693 'classname' => 'core_course_external',
694 'methodname' => 'import_course',
695 'classpath' => 'course/externallib.php',
696 'description' => 'Import course data from a course into another course. Does not include any user data.',
697 'type' => 'write',
698 'capabilities'=> 'moodle/backup:backuptargetimport, moodle/restore:restoretargetimport',
699 ),
700
a623b6b8
JM
701 // === message related functions ===
702
4de00da7 703 'moodle_message_send_instantmessages' => array(
3c1aa6fd
DM
704 'classname' => 'moodle_message_external',
705 'methodname' => 'send_instantmessages',
5d1017e1 706 'classpath' => 'message/externallib.php',
3c1aa6fd 707 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_message_send_instant_messages()',
5d1017e1
JM
708 'type' => 'write',
709 'capabilities'=> 'moodle/site:sendmessage',
710 ),
711
712 'core_message_send_instant_messages' => array(
713 'classname' => 'core_message_external',
714 'methodname' => 'send_instant_messages',
a623b6b8 715 'classpath' => 'message/externallib.php',
4de00da7 716 'description' => 'Send instant messages',
a623b6b8
JM
717 'type' => 'write',
718 'capabilities'=> 'moodle/site:sendmessage',
719 ),
720
d6731600
FM
721 'core_message_create_contacts' => array(
722 'classname' => 'core_message_external',
723 'methodname' => 'create_contacts',
724 'classpath' => 'message/externallib.php',
725 'description' => 'Add contacts to the contact list',
726 'type' => 'write',
727 'capabilities'=> '',
728 ),
729
730 'core_message_delete_contacts' => array(
731 'classname' => 'core_message_external',
732 'methodname' => 'delete_contacts',
733 'classpath' => 'message/externallib.php',
734 'description' => 'Remove contacts from the contact list',
735 'type' => 'write',
736 'capabilities'=> '',
737 ),
738
739 'core_message_block_contacts' => array(
740 'classname' => 'core_message_external',
741 'methodname' => 'block_contacts',
742 'classpath' => 'message/externallib.php',
743 'description' => 'Block contacts',
744 'type' => 'write',
745 'capabilities'=> '',
746 ),
747
748 'core_message_unblock_contacts' => array(
749 'classname' => 'core_message_external',
750 'methodname' => 'unblock_contacts',
751 'classpath' => 'message/externallib.php',
752 'description' => 'Unblock contacts',
753 'type' => 'write',
754 'capabilities'=> '',
755 ),
756
757 'core_message_get_contacts' => array(
758 'classname' => 'core_message_external',
759 'methodname' => 'get_contacts',
760 'classpath' => 'message/externallib.php',
761 'description' => 'Retrieve the contact list',
762 'type' => 'read',
763 'capabilities'=> '',
764 ),
765
766 'core_message_search_contacts' => array(
767 'classname' => 'core_message_external',
768 'methodname' => 'search_contacts',
769 'classpath' => 'message/externallib.php',
770 'description' => 'Search for contacts',
771 'type' => 'read',
772 'capabilities'=> '',
773 ),
774
aff9da17 775 'core_message_get_messages' => array(
6ff4464b
JL
776 'classname' => 'core_message_external',
777 'methodname' => 'get_messages',
778 'classpath' => 'message/externallib.php',
127ef540 779 'description' => 'Retrieve a list of messages sent and received by a user (conversations, notifications or both)',
6ff4464b
JL
780 'type' => 'read',
781 'capabilities' => '',
aff9da17
JL
782 ),
783
60ab2e1b
JL
784 'core_message_get_blocked_users' => array(
785 'classname' => 'core_message_external',
786 'methodname' => 'get_blocked_users',
787 'classpath' => 'message/externallib.php',
788 'description' => 'Retrieve a list of users blocked',
789 'type' => 'read',
790 'capabilities' => '',
791 ),
792
8d46dabb
JM
793 // === notes related functions ===
794
795 'moodle_notes_create_notes' => array(
3c1aa6fd 796 'classname' => 'moodle_notes_external',
5d1017e1
JM
797 'methodname' => 'create_notes',
798 'classpath' => 'notes/externallib.php',
3c1aa6fd 799 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_notes_create_notes()',
5d1017e1
JM
800 'type' => 'write',
801 'capabilities'=> 'moodle/notes:manage',
802 ),
803
804 'core_notes_create_notes' => array(
805 'classname' => 'core_notes_external',
8d46dabb
JM
806 'methodname' => 'create_notes',
807 'classpath' => 'notes/externallib.php',
808 'description' => 'Create notes',
809 'type' => 'write',
810 'capabilities'=> 'moodle/notes:manage',
811 ),
812
34348b2b
JF
813 'core_notes_delete_notes' => array(
814 'classname' => 'core_notes_external',
815 'methodname' => 'delete_notes',
816 'classpath' => 'notes/externallib.php',
817 'description' => 'Delete notes',
818 'type' => 'write',
819 'capabilities'=> 'moodle/notes:manage',
820 ),
821
822 'core_notes_get_notes' => array(
823 'classname' => 'core_notes_external',
824 'methodname' => 'get_notes',
825 'classpath' => 'notes/externallib.php',
826 'description' => 'Get notes',
827 'type' => 'read',
828 'capabilities'=> 'moodle/notes:view',
829 ),
830
831 'core_notes_update_notes' => array(
832 'classname' => 'core_notes_external',
833 'methodname' => 'update_notes',
834 'classpath' => 'notes/externallib.php',
835 'description' => 'Update notes',
836 'type' => 'write',
837 'capabilities'=> 'moodle/notes:manage',
838 ),
839
9028d9b5
PC
840 // === grading related functions ===
841
842 'core_grading_get_definitions' => array(
843 'classname' => 'core_grading_external',
844 'methodname' => 'get_definitions',
9028d9b5
PC
845 'description' => 'Get grading definitions',
846 'type' => 'read'
847 ),
3f0ea6d8
PC
848
849 'core_grade_get_definitions' => array(
850 'classname' => 'core_grade_external',
851 'methodname' => 'get_definitions',
852 'classpath' => 'grade/externallib.php',
9028d9b5
PC
853 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_grading_get_definitions()',
854 'type' => 'read'
855 ),
856
0ff4ebb4
PC
857 'core_grading_save_definitions' => array(
858 'classname' => 'core_grading_external',
859 'methodname' => 'save_definitions',
860 'description' => 'Save grading definitions',
861 'type' => 'write'
862 ),
863
9028d9b5
PC
864 'core_grading_get_gradingform_instances' => array(
865 'classname' => 'core_grading_external',
866 'methodname' => 'get_gradingform_instances',
9028d9b5 867 'description' => 'Get grading form instances',
3f0ea6d8
PC
868 'type' => 'read'
869 ),
870
0bf486a6
JM
871 // === webservice related functions ===
872
873 'moodle_webservice_get_siteinfo' => array(
3c1aa6fd
DM
874 'classname' => 'moodle_webservice_external',
875 'methodname' => 'get_siteinfo',
5d1017e1 876 'classpath' => 'webservice/externallib.php',
3c1aa6fd 877 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_webservice_get_site_info()',
5d1017e1
JM
878 'type' => 'read',
879 ),
880
881 'core_webservice_get_site_info' => array(
882 'classname' => 'core_webservice_external',
883 'methodname' => 'get_site_info',
0bf486a6
JM
884 'classpath' => 'webservice/externallib.php',
885 'description' => 'Return some site info / user info / list web service functions',
886 'type' => 'read',
887 ),
888
11e76602
JM
889 'core_get_string' => array(
890 'classname' => 'core_external',
891 'methodname' => 'get_string',
892 'classpath' => 'lib/external/externallib.php',
893 'description' => 'Return a translated string - similar to core get_string() call',
894 'type' => 'read',
895 ),
896
897 'core_get_strings' => array(
898 'classname' => 'core_external',
899 'methodname' => 'get_strings',
900 'classpath' => 'lib/external/externallib.php',
901 'description' => 'Return some translated strings - like several core get_string() calls',
902 'type' => 'read',
903 ),
904
905 'core_get_component_strings' => array(
906 'classname' => 'core_external',
907 'methodname' => 'get_component_strings',
908 'classpath' => 'lib/external/externallib.php',
909 'description' => 'Return all raw strings (with {$a->xxx}) for a specific component
910 - similar to core get_component_strings() call',
911 'type' => 'read',
912 ),
5e1350ab
AA
913
914
915 // === Calendar related functions ===
916
917 'core_calendar_delete_calendar_events' => array(
918 'classname' => 'core_calendar_external',
919 'methodname' => 'delete_calendar_events',
920 'description' => 'Delete calendar events',
921 'classpath' => 'calendar/externallib.php',
922 'type' => 'write',
923 'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries'
924 ),
925
793d3855
AA
926
927 'core_calendar_get_calendar_events' => array(
928 'classname' => 'core_calendar_external',
929 'methodname' => 'get_calendar_events',
930 'description' => 'Get calendar events',
931 'classpath' => 'calendar/externallib.php',
932 'type' => 'read',
933 'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries'
934 ),
935
c66dc3df
AA
936 'core_calendar_create_calendar_events' => array(
937 'classname' => 'core_calendar_external',
938 'methodname' => 'create_calendar_events',
939 'description' => 'Create calendar events',
940 'classpath' => 'calendar/externallib.php',
941 'type' => 'write',
942 'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries'
943 ),
9a0df45a 944);
c1b65883
JM
945
946$services = array(
96e0194c
SH
947 'Moodle mobile web service' => array(
948 'functions' => array (
949 'moodle_enrol_get_users_courses',
950 'moodle_enrol_get_enrolled_users',
f2806b9a
JM
951 'moodle_user_get_users_by_id',
952 'moodle_webservice_get_siteinfo',
953 'moodle_notes_create_notes',
ea4e96c2 954 'moodle_user_get_course_participants_by_id',
01479290 955 'moodle_user_get_users_by_courseid',
ec0d6ea2 956 'moodle_message_send_instantmessages',
11e76602 957 'core_course_get_contents',
6a403810 958 'core_get_component_strings',
925f4d6b 959 'core_user_add_user_device',
cb9d8257
JL
960 'core_calendar_get_calendar_events',
961 'core_enrol_get_users_courses',
962 'core_enrol_get_enrolled_users',
963 'core_user_get_users_by_id',
964 'core_webservice_get_site_info',
965 'core_notes_create_notes',
966 'core_user_get_course_user_profiles',
ba1dc597
JL
967 'core_message_send_instant_messages',
968 'mod_assign_get_grades',
969 'mod_assign_get_assignments',
970 'mod_assign_get_submissions',
971 'mod_assign_get_user_flags',
972 'mod_assign_set_user_flags',
973 'mod_assign_get_user_mappings',
974 'mod_assign_revert_submissions_to_draft',
975 'mod_assign_lock_submissions',
976 'mod_assign_unlock_submissions',
977 'mod_assign_save_submission',
978 'mod_assign_submit_for_grading',
979 'mod_assign_save_grade',
980 'mod_assign_save_user_extensions',
6acfacfa
JL
981 'mod_assign_reveal_identities',
982 'message_airnotifier_is_system_configured',
2e04d250 983 'message_airnotifier_are_notification_preferences_configured',
e2ede426
JL
984 'core_grades_update_grades',
985 'mod_forum_get_forums_by_courses',
2ce8934b 986 'mod_forum_get_forum_discussions_paginated',
feae0f9f 987 'mod_forum_get_forum_discussion_posts',
aff9da17 988 'core_files_get_files',
93872873
JL
989 'core_message_get_messages',
990 'core_message_create_contacts',
991 'core_message_delete_contacts',
992 'core_message_block_contacts',
993 'core_message_unblock_contacts',
994 'core_message_get_contacts',
60ab2e1b 995 'core_message_search_contacts',
3a2ba746 996 'core_message_get_blocked_users',
5d62e813
JL
997 'gradereport_user_get_grades_table',
998 'core_group_get_course_user_groups'
60ab2e1b 999 ),
96e0194c
SH
1000 'enabled' => 0,
1001 'restrictedusers' => 0,
af03513f 1002 'shortname' => MOODLE_OFFICIAL_MOBILE_SERVICE,
106c55fb
DW
1003 'downloadfiles' => 1,
1004 'uploadfiles' => 1
96e0194c
SH
1005 ),
1006);