<?php

$services = [
    "Competency listing" => [
        'functions' => [
            'local_treestudyplan_get_studyplan_map',
            'local_treestudyplan_get_studyline_map',
            'local_treestudyplan_add_studyplan',
            'local_treestudyplan_add_studyline',
            'local_treestudyplan_edit_studyplan',
            'local_treestudyplan_edit_studyline',
            'local_treestudyplan_delete_studyplan',
            'local_treestudyplan_delete_studyline',
            'local_treestudyplan_reorder_studylines',
            'local_treestudyplan_get_studyitem',
            'local_treestudyplan_add_studyitem',
            'local_treestudyplan_edit_studyitem',
            'local_treestudyplan_reorder_studyitems',
            'local_treestudyplan_delete_studyitem',
            'local_treestudyplan_connect_studyitems',
            'local_treestudyplan_disconnect_studyitems',
            'local_treestudyplan_get_user_studyplan_map',
            'local_treestudyplan_map_courses',
            'local_treestudyplan_export_studyplan',
            'local_treestudyplan_import_studyplan',
        ],
        'requiredcapability' => 'local/treestudyplan:configure',
        'shortname'=> 'local_treestudyplan_cohorts',
        'restrictedusers' => 0,
        'enabled' => 0,
        'ajax' => true,
    ],
];

$functions = [
    /***************************
     * Studyplan functions 
     ***************************/
    'local_treestudyplan_list_studyplans' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'list_studyplans',          //external function name
        'description'   => 'List available studyplans',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan, local/treestudyplan:viewuserreports', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],    
    'local_treestudyplan_get_studyplan_map' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'get_studyplan_map',          //external function name
        'description'   => 'Retrieve studyplan map',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan, local/treestudyplan:viewuserreports', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],    

    'local_treestudyplan_get_studyline_map' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'get_studyline_map',          //external function name
        'description'   => 'Retrieve studyline map',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],    

    'local_treestudyplan_add_studyplan' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'add_studyplan',          //external function name
        'description'   => 'Add studyplan',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],    

    'local_treestudyplan_add_studyline' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'add_studyline',          //external function name
        'description'   => 'Add studyline',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],    

    'local_treestudyplan_edit_studyplan' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'edit_studyplan',          //external function name
        'description'   => 'Edit studyplan',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],    

    'local_treestudyplan_edit_studyline' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'edit_studyline',          //external function name
        'description'   => 'Edit studyline',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],        

    'local_treestudyplan_delete_studyplan' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'delete_studyplan',          //external function name
        'description'   => 'Delete studyplan',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],    

    'local_treestudyplan_delete_studyline' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'delete_studyline',          //external function name
        'description'   => 'Delete studyline',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],        

    'local_treestudyplan_reorder_studylines' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'reorder_studylines',          //external function name
        'description'   => 'Reorder studylines',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],        
    
    'local_treestudyplan_get_studyitem' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'get_studyitem',          //external function name
        'description'   => 'Retrieve study item',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
   
    'local_treestudyplan_add_studyitem' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'add_studyitem',          //external function name
        'description'   => 'Add study item',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],        
   
    'local_treestudyplan_edit_studyitem' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'edit_studyitem',          //external function name
        'description'   => 'Edit study item',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],        
   
    'local_treestudyplan_reorder_studyitems' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'reorder_studyitems',          //external function name
        'description'   => 'Reorder study items',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],        

    'local_treestudyplan_delete_studyitem' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'delete_studyitem',          //external function name
        'description'   => 'Delete study item',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],        
    'local_treestudyplan_connect_studyitems' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'connect_studyitems',          //external function name
        'description'   => 'Connect study items',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],    
    'local_treestudyplan_disconnect_studyitems' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'disconnect_studyitems',          //external function name
        'description'   => 'Disconnect study items',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],        
    /***************************
     * Badge functions 
     ***************************/

    'local_treestudyplan_list_badges' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'list_badges',          //external function name
        'description'   => 'List availabel site badges',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],    
    /***************************
     * Association functions 
     ***************************/
    'local_treestudyplan_list_cohort' => [         //web service function name
        'classname'     => '\local_treestudyplan\associationservice',  //class containing the external function
        'methodname'    => 'list_cohort',          //external function name
        'description'   => 'List available cohorts',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_find_user' => [         //web service function name
        'classname'     => '\local_treestudyplan\associationservice',  //class containing the external function
        'methodname'    => 'find_user',          //external function name
        'description'   => 'Find user',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_connect_cohort' => [         //web service function name
        'classname'     => '\local_treestudyplan\associationservice',  //class containing the external function
        'methodname'    => 'connect_cohort',          //external function name
        'description'   => 'Connect cohort to studyplan',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_disconnect_cohort' => [         //web service function name
        'classname'     => '\local_treestudyplan\associationservice',  //class containing the external function
        'methodname'    => 'disconnect_cohort',          //external function name
        'description'   => 'Disconnect cohort from study plan',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    
    'local_treestudyplan_connect_user' => [         //web service function name
        'classname'     => '\local_treestudyplan\associationservice',  //class containing the external function
        'methodname'    => 'connect_user',          //external function name
        'description'   => 'Connect user to study plan',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_disconnect_user' => [         //web service function name
        'classname'     => '\local_treestudyplan\associationservice',  //class containing the external function
        'methodname'    => 'disconnect_user',          //external function name
        'description'   => 'Disconnect user from studyplan',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_associated_users' => [         //web service function name
        'classname'     => '\local_treestudyplan\associationservice',  //class containing the external function
        'methodname'    => 'associated_users',          //external function name
        'description'   => 'List users associated with a studyplan',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_associated_cohorts' => [         //web service function name
        'classname'     => '\local_treestudyplan\associationservice',  //class containing the external function
        'methodname'    => 'associated_cohorts',          //external function name
        'description'   => 'List cohorts associated with a studyplan',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_list_user_studyplans' => [         //web service function name
        'classname'     => '\local_treestudyplan\studentstudyplanservice',  //class containing the external function
        'methodname'    => 'list_user_studyplans',          //external function name
        'description'   => 'List user studyplans',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:viewuserreports', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],    
    'local_treestudyplan_get_user_studyplans' => [         //web service function name
        'classname'     => '\local_treestudyplan\studentstudyplanservice',  //class containing the external function
        'methodname'    => 'get_user_studyplans',          //external function name
        'description'   => 'Retrieve user studyplan',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:viewuserreports', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],        
    'local_treestudyplan_get_user_studyplan' => [         //web service function name
        'classname'     => '\local_treestudyplan\studentstudyplanservice',  //class containing the external function
        'methodname'    => 'get_user_studyplan',          //external function name
        'description'   => 'Retrieve user studyplan',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:viewuserreports', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],        
    'local_treestudyplan_get_invited_studyplan' => [         //web service function name
        'classname'     => '\local_treestudyplan\studentstudyplanservice',  //class containing the external function
        'methodname'    => 'get_invited_studyplan',          //external function name
        'description'   => 'Retrieve user studyplan based on invite',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => '', // Advises the admin which capabilities are required
        'loginrequired' => false,
    ],          
    'local_treestudyplan_list_own_studyplans' => [         //web service function name
        'classname'     => '\local_treestudyplan\studentstudyplanservice',  //class containing the external function
        'methodname'    => 'list_own_studyplans',          //external function name
        'description'   => 'List own studyplans',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => '', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],    
    'local_treestudyplan_get_own_studyplan' => [         //web service function name
        'classname'     => '\local_treestudyplan\studentstudyplanservice',  //class containing the external function
        'methodname'    => 'get_own_studyplan',          //external function name
        'description'   => 'Retrieve own studyplan',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => '', // Advises the admin which capabilities are required
        'loginrequired' => true, 
    ],    
    'local_treestudyplan_map_categories' => [         //web service function name
        'classname'     => '\local_treestudyplan\courseservice',  //class containing the external function
        'methodname'    => 'map_categories',          //external function name
        'description'   => 'List available root categories',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ], 
    'local_treestudyplan_get_category' => [         //web service function name
        'classname'     => '\local_treestudyplan\courseservice',  //class containing the external function
        'methodname'    => 'get_category',          //external function name
        'description'   => 'Get details for specified category',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],     
    'local_treestudyplan_include_grade' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'include_grade',          //external function name
        'description'   => 'Include gradable in result',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan, local/treestudyplan:selectowngradables', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_all_associated' => [         //web service function name
        'classname'     => '\local_treestudyplan\associationservice',  //class containing the external function
        'methodname'    => 'all_associated',          //external function name
        'description'   => 'List associated users',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:viewuserreports', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ], 
    'local_treestudyplan_list_aggregators' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'list_aggregators',          //external function name
        'description'   => 'List available aggregators',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ], 
    'local_treestudyplan_disable_autoenddate' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'disable_autoenddate',          //external function name
        'description'   => 'Disable automatic end dates on courses in the study plan',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:forcescales', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ], 
    'local_treestudyplan_force_studyplan_scale' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'force_studyplan_scale',          //external function name
        'description'   => 'Change all associated gradables to the chosen scale if possible',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:forcescales', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ], 
    'local_treestudyplan_list_scales' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'list_scales',          //external function name
        'description'   => 'List system scales',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:forcescales', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_duplicate_plan' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'duplicate_plan',          //external function name
        'description'   => 'Copy studyplan',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_export_plan' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'export_plan',          //external function name
        'description'   => 'Export study plan',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_export_studylines' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'export_studylines',          //external function name
        'description'   => 'Export study plan',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],   
    'local_treestudyplan_import_plan' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'import_plan',          //external function name
        'description'   => 'Import study plan',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_import_studylines' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'import_studylines',          //external function name
        'description'   => 'Import study plan',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_read_course_displayname' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'read_course_displayname',          //external function name
        'description'   => 'Read title and desc for course module',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],   
    'local_treestudyplan_write_course_displayname' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'write_course_displayname',          //external function name
        'description'   => 'Write title and desc for course module',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_submit_cm_editform' => [         //web service function name
        'classname'     => '\local_treestudyplan\studyplanservice',  //class containing the external function
        'methodname'    => 'submit_cm_editform',          //external function name
        'description'   => 'Submit course module edit form',    //human readable description of the web service function
        'type'          => 'write',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_get_teaching_studyplans' => [         //web service function name
        'classname'     => '\local_treestudyplan\studentstudyplanservice',  //class containing the external function
        'methodname'    => 'get_teaching_studyplans',          //external function name
        'description'   => 'Get the studyplans I currently teach in',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'capabilities'  => 'local/treestudyplan:viewuserreports', // Advises the admin which capabilities are required
        'loginrequired' => true,
    ],
    'local_treestudyplan_list_accessible_categories' => [         //web service function name
        'classname'     => '\local_treestudyplan\courseservice',  //class containing the external function
        'methodname'    => 'list_accessible_categories',          //external function name
        'description'   => 'Get categories accessible to the current user',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'ajax'          => true,
        'loginrequired' => true,
    ],
    'local_treestudyplan_list_used_categories' => [         //web service function name
        'classname'     => '\local_treestudyplan\courseservice',  //class containing the external function
        'methodname'    => 'list_used_categories',          //external function name
        'description'   => 'Get categories hosting  a studyplan',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'ajax'          => true,
        'loginrequired' => true,
    ],
    'local_treestudyplan_scan_badge_progress' => [         //web service function name
        'classname'     => '\local_treestudyplan\courseservice',  //class containing the external function
        'methodname'    => 'scan_badge_progress',          //external function name
        'description'   => 'Scan progress of students in attaining badge',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'capabilities'  => 'local/treestudyplan:viewuserreports', // Advises the admin which capabilities are required
        'ajax'          => true,
        'loginrequired' => true,
    ],
    'local_treestudyplan_scan_completion_progress' => [         //web service function name
        'classname'     => '\local_treestudyplan\courseservice',  //class containing the external function
        'methodname'    => 'scan_completion_progress',          //external function name
        'description'   => 'Scan progress of students in attaining completions',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'capabilities'  => 'local/treestudyplan:viewuserreports', // Advises the admin which capabilities are required
        'ajax'          => true,
        'loginrequired' => true,
    ],
    'local_treestudyplan_scan_grade_progress' => [         //web service function name
        'classname'     => '\local_treestudyplan\courseservice',  //class containing the external function
        'methodname'    => 'scan_grade_progress',          //external function name
        'description'   => 'Scan progress of students in attaining grades',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'capabilities'  => 'local/treestudyplan:viewuserreports', // Advises the admin which capabilities are required
        'ajax'          => true,
        'loginrequired' => true,
    ],
    'local_treestudyplan_cascade_cohortsync' => [         //web service function name
        'classname'     => '\local_treestudyplan\associationservice',  //class containing the external function
        'methodname'    => 'cascade_cohortsync',          //external function name
        'description'   => 'Sync cohortsync to studyplan association',    //human readable description of the web service function
        'type'          => 'read',                  //database rights of the web service function (read, write)
        'capabilities'  => 'local/treestudyplan:editstudyplan', // Advises the admin which capabilities are required
        'ajax'          => true,
        'loginrequired' => true,
    ],    
];