def complete(self, **kwargs):
if '<STR_LIT>' in kwargs:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>if '<STR_LIT>' in kwargs:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>kwargs['<STR_LIT>'] = self.attempt<EOL>kwargs['<STR_LIT>'] = self.validation_token<EOL>response = self._requester.request(<EOL>'<STR_LIT:POST>',<EOL>'<STR_LIT>'.format(<EOL>self.course_id,<EOL>self.quiz_id,<EOL>self.id<EOL>),<EOL>_kwargs=combine_kwargs(**kwargs)<EOL>)<EOL>response_json = response.json()["<STR_LIT>"][<NUM_LIT:0>]<EOL>return QuizSubmission(self._requester, response_json)<EOL>
Complete the quiz submission by marking it as complete and grading it. When the quiz
submission has been marked as complete, no further modifications will be allowed.

:calls: `POST /api/v1/courses/:course_id/quizzes/:quiz_id/submissions/:id/complete \
<https://canvas.instructure.com/doc/api/quiz_submissions.html#method.quizzes/quiz_submissions_api.complete>`_

:rtype: :class:`canvasapi.quiz.QuizSubmission`