protected static function get_preferences_structure() {
        return new external_single_structure(
            array(
                'userid' => new external_value(PARAM_INT, 'User id'),
                'disableall' => new external_value(PARAM_INT, 'Whether all the preferences are disabled'),
                'processors' => new external_multiple_structure(
                    new external_single_structure(
                        array(
                            'displayname' => new external_value(PARAM_TEXT, 'Display name'),
                            'name' => new external_value(PARAM_PLUGIN, 'Processor name'),
                            'hassettings' => new external_value(PARAM_BOOL, 'Whether has settings'),
                            'contextid' => new external_value(PARAM_INT, 'Context id'),
                            'userconfigured' => new external_value(PARAM_INT, 'Whether is configured by the user'),
                        )
                    ),
                    'Config form values'
                ),
                'components' => new external_multiple_structure(
                    new external_single_structure(
                        array(
                            'displayname' => new external_value(PARAM_TEXT, 'Display name'),
                            'notifications' => new external_multiple_structure(
                                new external_single_structure(
                                    array(
                                        'displayname' => new external_value(PARAM_TEXT, 'Display name'),
                                        'preferencekey' => new external_value(PARAM_ALPHANUMEXT, 'Preference key'),
                                        'processors' => new external_multiple_structure(
                                            new external_single_structure(
                                                array(
                                                    'displayname' => new external_value(PARAM_TEXT, 'Display name'),
                                                    'name' => new external_value(PARAM_PLUGIN, 'Processor name'),
                                                    'locked' => new external_value(PARAM_BOOL, 'Is locked by admin?'),
                                                    'lockedmessage' => new external_value(PARAM_TEXT,
                                                        'Text to display if locked', VALUE_OPTIONAL),
                                                    'userconfigured' => new external_value(PARAM_INT, 'Is configured?'),
                                                    'loggedin' => new external_single_structure(
                                                        array(
                                                            'name' => new external_value(PARAM_NOTAGS, 'Name'),
                                                            'displayname' => new external_value(PARAM_TEXT, 'Display name'),
                                                            'checked' => new external_value(PARAM_BOOL, 'Is checked?'),
                                                        )
                                                    ),
                                                    'loggedoff' => new external_single_structure(
                                                        array(
                                                            'name' => new external_value(PARAM_NOTAGS, 'Name'),
                                                            'displayname' => new external_value(PARAM_TEXT, 'Display name'),
                                                            'checked' => new external_value(PARAM_BOOL, 'Is checked?'),
                                                        )
                                                    ),
                                                )
                                            ),
                                            'Processors values for this notification'
                                        ),
                                    )
                                ),
                                'List of notificaitons for the component'
                            ),
                        )
                    ),
                    'Available components'
                ),
            )
        );
    }
protected static function get_preferences_structure() {
        return new external_single_structure(
            array(
                'userid' => new external_value(PARAM_INT, 'User id'),
                'disableall' => new external_value(PARAM_INT, 'Whether all the preferences are disabled'),
                'processors' => new external_multiple_structure(
                    new external_single_structure(
                        array(
                            'displayname' => new external_value(PARAM_TEXT, 'Display name'),
                            'name' => new external_value(PARAM_PLUGIN, 'Processor name'),
                            'hassettings' => new external_value(PARAM_BOOL, 'Whether has settings'),
                            'contextid' => new external_value(PARAM_INT, 'Context id'),
                            'userconfigured' => new external_value(PARAM_INT, 'Whether is configured by the user'),
                        )
                    ),
                    'Config form values'
                ),
                'components' => new external_multiple_structure(
                    new external_single_structure(
                        array(
                            'displayname' => new external_value(PARAM_TEXT, 'Display name'),
                            'notifications' => new external_multiple_structure(
                                new external_single_structure(
                                    array(
                                        'displayname' => new external_value(PARAM_TEXT, 'Display name'),
                                        'preferencekey' => new external_value(PARAM_ALPHANUMEXT, 'Preference key'),
                                        'processors' => new external_multiple_structure(
                                            new external_single_structure(
                                                array(
                                                    'displayname' => new external_value(PARAM_TEXT, 'Display name'),
                                                    'name' => new external_value(PARAM_PLUGIN, 'Processor name'),
                                                    'locked' => new external_value(PARAM_BOOL, 'Is locked by admin?'),
                                                    'lockedmessage' => new external_value(PARAM_TEXT,
                                                        'Text to display if locked', VALUE_OPTIONAL),
                                                    'userconfigured' => new external_value(PARAM_INT, 'Is configured?'),
                                                    'loggedin' => new external_single_structure(
                                                        array(
                                                            'name' => new external_value(PARAM_NOTAGS, 'Name'),
                                                            'displayname' => new external_value(PARAM_TEXT, 'Display name'),
                                                            'checked' => new external_value(PARAM_BOOL, 'Is checked?'),
                                                        )
                                                    ),
                                                    'loggedoff' => new external_single_structure(
                                                        array(
                                                            'name' => new external_value(PARAM_NOTAGS, 'Name'),
                                                            'displayname' => new external_value(PARAM_TEXT, 'Display name'),
                                                            'checked' => new external_value(PARAM_BOOL, 'Is checked?'),
                                                        )
                                                    ),
                                                )
                                            ),
                                            'Processors values for this notification'
                                        ),
                                    )
                                ),
                                'List of notificaitons for the component'
                            ),
                        )
                    ),
                    'Available components'
                ),
            )
        );
    }
protected static function get_preferences_structure ( ) { return new external_single_structure ( array ( 'userid' => new external_value ( PARAM_INT , 'User id' ) , 'disableall' => new external_value ( PARAM_INT , 'Whether all the preferences are disabled' ) , 'processors' => new external_multiple_structure ( new external_single_structure ( array ( 'displayname' => new external_value ( PARAM_TEXT , 'Display name' ) , 'name' => new external_value ( PARAM_PLUGIN , 'Processor name' ) , 'hassettings' => new external_value ( PARAM_BOOL , 'Whether has settings' ) , 'contextid' => new external_value ( PARAM_INT , 'Context id' ) , 'userconfigured' => new external_value ( PARAM_INT , 'Whether is configured by the user' ) , ) ) , 'Config form values' ) , 'components' => new external_multiple_structure ( new external_single_structure ( array ( 'displayname' => new external_value ( PARAM_TEXT , 'Display name' ) , 'notifications' => new external_multiple_structure ( new external_single_structure ( array ( 'displayname' => new external_value ( PARAM_TEXT , 'Display name' ) , 'preferencekey' => new external_value ( PARAM_ALPHANUMEXT , 'Preference key' ) , 'processors' => new external_multiple_structure ( new external_single_structure ( array ( 'displayname' => new external_value ( PARAM_TEXT , 'Display name' ) , 'name' => new external_value ( PARAM_PLUGIN , 'Processor name' ) , 'locked' => new external_value ( PARAM_BOOL , 'Is locked by admin?' ) , 'lockedmessage' => new external_value ( PARAM_TEXT , 'Text to display if locked' , VALUE_OPTIONAL ) , 'userconfigured' => new external_value ( PARAM_INT , 'Is configured?' ) , 'loggedin' => new external_single_structure ( array ( 'name' => new external_value ( PARAM_NOTAGS , 'Name' ) , 'displayname' => new external_value ( PARAM_TEXT , 'Display name' ) , 'checked' => new external_value ( PARAM_BOOL , 'Is checked?' ) , ) ) , 'loggedoff' => new external_single_structure ( array ( 'name' => new external_value ( PARAM_NOTAGS , 'Name' ) , 'displayname' => new external_value ( PARAM_TEXT , 'Display name' ) , 'checked' => new external_value ( PARAM_BOOL , 'Is checked?' ) , ) ) , ) ) , 'Processors values for this notification' ) , ) ) , 'List of notificaitons for the component' ) , ) ) , 'Available components' ) , ) ) ; }
Returns a notification or message preference structure.

@return external_single_structure the structure
@since  Moodle 3.2
Returns a notification or message preference structure .