original_string: protected static function get_user_attempt_grade_structure($required = VALUE_REQUIRED) {
          $data = array(
              'nquestions' => new external_value(PARAM_INT, 'Number of questions answered'),
              'attempts' => new external_value(PARAM_INT, 'Number of question attempts'),
              'total' => new external_value(PARAM_FLOAT, 'Max points possible'),
              'earned' => new external_value(PARAM_FLOAT, 'Points earned by student'),
              'grade' => new external_value(PARAM_FLOAT, 'Calculated percentage grade'),
              'nmanual' => new external_value(PARAM_INT, 'Number of manually graded questions'),
              'manualpoints' => new external_value(PARAM_FLOAT, 'Point value for manually graded questions'),
          );
          return new external_single_structure(
              $data, 'Attempt grade', $required
          );
      }
code: protected static function get_user_attempt_grade_structure($required = VALUE_REQUIRED) {
          $data = array(
              'nquestions' => new external_value(PARAM_INT, 'Number of questions answered'),
              'attempts' => new external_value(PARAM_INT, 'Number of question attempts'),
              'total' => new external_value(PARAM_FLOAT, 'Max points possible'),
              'earned' => new external_value(PARAM_FLOAT, 'Points earned by student'),
              'grade' => new external_value(PARAM_FLOAT, 'Calculated percentage grade'),
              'nmanual' => new external_value(PARAM_INT, 'Number of manually graded questions'),
              'manualpoints' => new external_value(PARAM_FLOAT, 'Point value for manually graded questions'),
          );
          return new external_single_structure(
              $data, 'Attempt grade', $required
          );
      }
code_tokens: protected static function get_user_attempt_grade_structure ( $ required = VALUE_REQUIRED ) { $ data = array ( 'nquestions' => new external_value ( PARAM_INT , 'Number of questions answered' ) , 'attempts' => new external_value ( PARAM_INT , 'Number of question attempts' ) , 'total' => new external_value ( PARAM_FLOAT , 'Max points possible' ) , 'earned' => new external_value ( PARAM_FLOAT , 'Points earned by student' ) , 'grade' => new external_value ( PARAM_FLOAT , 'Calculated percentage grade' ) , 'nmanual' => new external_value ( PARAM_INT , 'Number of manually graded questions' ) , 'manualpoints' => new external_value ( PARAM_FLOAT , 'Point value for manually graded questions' ) , ) ; return new external_single_structure ( $ data , 'Attempt grade' , $ required ) ; }
docstring: Describes an attempt grade structure.
  
  @param  int $required if the structure is required or optional
  @return external_single_structure the structure
  @since  Moodle 3.3
docstring_tokens: Describes an attempt grade structure .