use serde::{self, Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
pub struct Params {
#[serde(rename = "assignid")]
pub r#assignid: Option<i64>,
#[serde(rename = "userid")]
pub r#userid: Option<i64>,
#[serde(rename = "groupid")]
pub r#groupid: Option<i64>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsGradingsummary {
#[serde(rename = "participantcount")]
pub r#participantcount: Option<i64>,
#[serde(rename = "submissiondraftscount")]
pub r#submissiondraftscount: Option<i64>,
#[serde(rename = "submissionsenabled")]
pub r#submissionsenabled: Option<bool>,
#[serde(rename = "submissionssubmittedcount")]
pub r#submissionssubmittedcount: Option<i64>,
#[serde(rename = "submissionsneedgradingcount")]
pub r#submissionsneedgradingcount: Option<i64>,
#[serde(rename = "warnofungroupedusers")]
pub r#warnofungroupedusers: Option<String>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsLastattemptSubmissionPluginsItemFileareasItemFilesItem {
#[serde(rename = "filename")]
pub r#filename: Option<String>,
#[serde(rename = "filepath")]
pub r#filepath: Option<String>,
#[serde(rename = "filesize")]
pub r#filesize: Option<i64>,
#[serde(rename = "fileurl")]
pub r#fileurl: Option<String>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "mimetype")]
pub r#mimetype: Option<String>,
#[serde(rename = "isexternalfile")]
pub r#isexternalfile: Option<bool>,
#[serde(rename = "repositorytype")]
pub r#repositorytype: Option<String>,
}
pub type r#ReturnsLastattemptSubmissionPluginsItemFileareasItemFiles =
Vec<ReturnsLastattemptSubmissionPluginsItemFileareasItemFilesItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsLastattemptSubmissionPluginsItemFileareasItem {
#[serde(rename = "area")]
pub r#area: Option<String>,
#[serde(rename = "files")]
pub r#files: Option<r#ReturnsLastattemptSubmissionPluginsItemFileareasItemFiles>,
}
pub type r#ReturnsLastattemptSubmissionPluginsItemFileareas =
Vec<ReturnsLastattemptSubmissionPluginsItemFileareasItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsLastattemptSubmissionPluginsItemEditorfieldsItem {
#[serde(rename = "name")]
pub r#name: Option<String>,
#[serde(rename = "description")]
pub r#description: Option<String>,
#[serde(rename = "text")]
pub r#text: Option<String>,
#[serde(rename = "format")]
pub r#format: Option<i64>,
}
pub type r#ReturnsLastattemptSubmissionPluginsItemEditorfields =
Vec<ReturnsLastattemptSubmissionPluginsItemEditorfieldsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsLastattemptSubmissionPluginsItem {
#[serde(rename = "type")]
pub r#type: Option<String>,
#[serde(rename = "name")]
pub r#name: Option<String>,
#[serde(rename = "fileareas")]
pub r#fileareas: Option<r#ReturnsLastattemptSubmissionPluginsItemFileareas>,
#[serde(rename = "editorfields")]
pub r#editorfields: Option<r#ReturnsLastattemptSubmissionPluginsItemEditorfields>,
}
pub type r#ReturnsLastattemptSubmissionPlugins = Vec<ReturnsLastattemptSubmissionPluginsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsLastattemptSubmission {
#[serde(rename = "id")]
pub r#id: Option<i64>,
#[serde(rename = "userid")]
pub r#userid: Option<i64>,
#[serde(rename = "attemptnumber")]
pub r#attemptnumber: Option<i64>,
#[serde(rename = "timecreated")]
pub r#timecreated: Option<i64>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "timestarted")]
pub r#timestarted: Option<i64>,
#[serde(rename = "status")]
pub r#status: Option<String>,
#[serde(rename = "groupid")]
pub r#groupid: Option<i64>,
#[serde(rename = "assignment")]
pub r#assignment: Option<i64>,
#[serde(rename = "latest")]
pub r#latest: Option<i64>,
#[serde(rename = "plugins")]
pub r#plugins: Option<r#ReturnsLastattemptSubmissionPlugins>,
#[serde(rename = "gradingstatus")]
pub r#gradingstatus: Option<String>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsLastattemptTeamsubmissionPluginsItemFileareasItemFilesItem {
#[serde(rename = "filename")]
pub r#filename: Option<String>,
#[serde(rename = "filepath")]
pub r#filepath: Option<String>,
#[serde(rename = "filesize")]
pub r#filesize: Option<i64>,
#[serde(rename = "fileurl")]
pub r#fileurl: Option<String>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "mimetype")]
pub r#mimetype: Option<String>,
#[serde(rename = "isexternalfile")]
pub r#isexternalfile: Option<bool>,
#[serde(rename = "repositorytype")]
pub r#repositorytype: Option<String>,
}
pub type r#ReturnsLastattemptTeamsubmissionPluginsItemFileareasItemFiles =
Vec<ReturnsLastattemptTeamsubmissionPluginsItemFileareasItemFilesItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsLastattemptTeamsubmissionPluginsItemFileareasItem {
#[serde(rename = "area")]
pub r#area: Option<String>,
#[serde(rename = "files")]
pub r#files: Option<r#ReturnsLastattemptTeamsubmissionPluginsItemFileareasItemFiles>,
}
pub type r#ReturnsLastattemptTeamsubmissionPluginsItemFileareas =
Vec<ReturnsLastattemptTeamsubmissionPluginsItemFileareasItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsLastattemptTeamsubmissionPluginsItemEditorfieldsItem {
#[serde(rename = "name")]
pub r#name: Option<String>,
#[serde(rename = "description")]
pub r#description: Option<String>,
#[serde(rename = "text")]
pub r#text: Option<String>,
#[serde(rename = "format")]
pub r#format: Option<i64>,
}
pub type r#ReturnsLastattemptTeamsubmissionPluginsItemEditorfields =
Vec<ReturnsLastattemptTeamsubmissionPluginsItemEditorfieldsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsLastattemptTeamsubmissionPluginsItem {
#[serde(rename = "type")]
pub r#type: Option<String>,
#[serde(rename = "name")]
pub r#name: Option<String>,
#[serde(rename = "fileareas")]
pub r#fileareas: Option<r#ReturnsLastattemptTeamsubmissionPluginsItemFileareas>,
#[serde(rename = "editorfields")]
pub r#editorfields: Option<r#ReturnsLastattemptTeamsubmissionPluginsItemEditorfields>,
}
pub type r#ReturnsLastattemptTeamsubmissionPlugins =
Vec<ReturnsLastattemptTeamsubmissionPluginsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsLastattemptTeamsubmission {
#[serde(rename = "id")]
pub r#id: Option<i64>,
#[serde(rename = "userid")]
pub r#userid: Option<i64>,
#[serde(rename = "attemptnumber")]
pub r#attemptnumber: Option<i64>,
#[serde(rename = "timecreated")]
pub r#timecreated: Option<i64>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "timestarted")]
pub r#timestarted: Option<i64>,
#[serde(rename = "status")]
pub r#status: Option<String>,
#[serde(rename = "groupid")]
pub r#groupid: Option<i64>,
#[serde(rename = "assignment")]
pub r#assignment: Option<i64>,
#[serde(rename = "latest")]
pub r#latest: Option<i64>,
#[serde(rename = "plugins")]
pub r#plugins: Option<r#ReturnsLastattemptTeamsubmissionPlugins>,
#[serde(rename = "gradingstatus")]
pub r#gradingstatus: Option<String>,
}
pub type r#ReturnsLastattemptSubmissiongroupmemberswhoneedtosubmit = Vec<i64>;
pub type r#ReturnsLastattemptUsergroups = Vec<i64>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsLastattempt {
#[serde(rename = "submission")]
pub r#submission: Option<ReturnsLastattemptSubmission>,
#[serde(rename = "teamsubmission")]
pub r#teamsubmission: Option<ReturnsLastattemptTeamsubmission>,
#[serde(rename = "submissiongroup")]
pub r#submissiongroup: Option<i64>,
#[serde(rename = "submissiongroupmemberswhoneedtosubmit")]
pub r#submissiongroupmemberswhoneedtosubmit:
Option<r#ReturnsLastattemptSubmissiongroupmemberswhoneedtosubmit>,
#[serde(rename = "submissionsenabled")]
pub r#submissionsenabled: Option<bool>,
#[serde(rename = "locked")]
pub r#locked: Option<bool>,
#[serde(rename = "graded")]
pub r#graded: Option<bool>,
#[serde(rename = "canedit")]
pub r#canedit: Option<bool>,
#[serde(rename = "caneditowner")]
pub r#caneditowner: Option<bool>,
#[serde(rename = "cansubmit")]
pub r#cansubmit: Option<bool>,
#[serde(rename = "extensionduedate")]
pub r#extensionduedate: Option<i64>,
#[serde(rename = "timelimit")]
pub r#timelimit: Option<i64>,
#[serde(rename = "blindmarking")]
pub r#blindmarking: Option<bool>,
#[serde(rename = "gradingstatus")]
pub r#gradingstatus: Option<String>,
#[serde(rename = "usergroups")]
pub r#usergroups: Option<r#ReturnsLastattemptUsergroups>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsFeedbackGrade {
#[serde(rename = "id")]
pub r#id: Option<i64>,
#[serde(rename = "assignment")]
pub r#assignment: Option<i64>,
#[serde(rename = "userid")]
pub r#userid: Option<i64>,
#[serde(rename = "attemptnumber")]
pub r#attemptnumber: Option<i64>,
#[serde(rename = "timecreated")]
pub r#timecreated: Option<i64>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "grader")]
pub r#grader: Option<i64>,
#[serde(rename = "grade")]
pub r#grade: Option<String>,
#[serde(rename = "gradefordisplay")]
pub r#gradefordisplay: Option<String>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsFeedbackPluginsItemFileareasItemFilesItem {
#[serde(rename = "filename")]
pub r#filename: Option<String>,
#[serde(rename = "filepath")]
pub r#filepath: Option<String>,
#[serde(rename = "filesize")]
pub r#filesize: Option<i64>,
#[serde(rename = "fileurl")]
pub r#fileurl: Option<String>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "mimetype")]
pub r#mimetype: Option<String>,
#[serde(rename = "isexternalfile")]
pub r#isexternalfile: Option<bool>,
#[serde(rename = "repositorytype")]
pub r#repositorytype: Option<String>,
}
pub type r#ReturnsFeedbackPluginsItemFileareasItemFiles =
Vec<ReturnsFeedbackPluginsItemFileareasItemFilesItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsFeedbackPluginsItemFileareasItem {
#[serde(rename = "area")]
pub r#area: Option<String>,
#[serde(rename = "files")]
pub r#files: Option<r#ReturnsFeedbackPluginsItemFileareasItemFiles>,
}
pub type r#ReturnsFeedbackPluginsItemFileareas = Vec<ReturnsFeedbackPluginsItemFileareasItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsFeedbackPluginsItemEditorfieldsItem {
#[serde(rename = "name")]
pub r#name: Option<String>,
#[serde(rename = "description")]
pub r#description: Option<String>,
#[serde(rename = "text")]
pub r#text: Option<String>,
#[serde(rename = "format")]
pub r#format: Option<i64>,
}
pub type r#ReturnsFeedbackPluginsItemEditorfields = Vec<ReturnsFeedbackPluginsItemEditorfieldsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsFeedbackPluginsItem {
#[serde(rename = "type")]
pub r#type: Option<String>,
#[serde(rename = "name")]
pub r#name: Option<String>,
#[serde(rename = "fileareas")]
pub r#fileareas: Option<r#ReturnsFeedbackPluginsItemFileareas>,
#[serde(rename = "editorfields")]
pub r#editorfields: Option<r#ReturnsFeedbackPluginsItemEditorfields>,
}
pub type r#ReturnsFeedbackPlugins = Vec<ReturnsFeedbackPluginsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsFeedback {
#[serde(rename = "grade")]
pub r#grade: Option<ReturnsFeedbackGrade>,
#[serde(rename = "gradefordisplay")]
pub r#gradefordisplay: Option<String>,
#[serde(rename = "gradeddate")]
pub r#gradeddate: Option<i64>,
#[serde(rename = "plugins")]
pub r#plugins: Option<r#ReturnsFeedbackPlugins>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsPreviousattemptsItemSubmissionPluginsItemFileareasItemFilesItem {
#[serde(rename = "filename")]
pub r#filename: Option<String>,
#[serde(rename = "filepath")]
pub r#filepath: Option<String>,
#[serde(rename = "filesize")]
pub r#filesize: Option<i64>,
#[serde(rename = "fileurl")]
pub r#fileurl: Option<String>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "mimetype")]
pub r#mimetype: Option<String>,
#[serde(rename = "isexternalfile")]
pub r#isexternalfile: Option<bool>,
#[serde(rename = "repositorytype")]
pub r#repositorytype: Option<String>,
}
pub type r#ReturnsPreviousattemptsItemSubmissionPluginsItemFileareasItemFiles =
Vec<ReturnsPreviousattemptsItemSubmissionPluginsItemFileareasItemFilesItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsPreviousattemptsItemSubmissionPluginsItemFileareasItem {
#[serde(rename = "area")]
pub r#area: Option<String>,
#[serde(rename = "files")]
pub r#files: Option<r#ReturnsPreviousattemptsItemSubmissionPluginsItemFileareasItemFiles>,
}
pub type r#ReturnsPreviousattemptsItemSubmissionPluginsItemFileareas =
Vec<ReturnsPreviousattemptsItemSubmissionPluginsItemFileareasItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsPreviousattemptsItemSubmissionPluginsItemEditorfieldsItem {
#[serde(rename = "name")]
pub r#name: Option<String>,
#[serde(rename = "description")]
pub r#description: Option<String>,
#[serde(rename = "text")]
pub r#text: Option<String>,
#[serde(rename = "format")]
pub r#format: Option<i64>,
}
pub type r#ReturnsPreviousattemptsItemSubmissionPluginsItemEditorfields =
Vec<ReturnsPreviousattemptsItemSubmissionPluginsItemEditorfieldsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsPreviousattemptsItemSubmissionPluginsItem {
#[serde(rename = "type")]
pub r#type: Option<String>,
#[serde(rename = "name")]
pub r#name: Option<String>,
#[serde(rename = "fileareas")]
pub r#fileareas: Option<r#ReturnsPreviousattemptsItemSubmissionPluginsItemFileareas>,
#[serde(rename = "editorfields")]
pub r#editorfields: Option<r#ReturnsPreviousattemptsItemSubmissionPluginsItemEditorfields>,
}
pub type r#ReturnsPreviousattemptsItemSubmissionPlugins =
Vec<ReturnsPreviousattemptsItemSubmissionPluginsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsPreviousattemptsItemSubmission {
#[serde(rename = "id")]
pub r#id: Option<i64>,
#[serde(rename = "userid")]
pub r#userid: Option<i64>,
#[serde(rename = "attemptnumber")]
pub r#attemptnumber: Option<i64>,
#[serde(rename = "timecreated")]
pub r#timecreated: Option<i64>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "timestarted")]
pub r#timestarted: Option<i64>,
#[serde(rename = "status")]
pub r#status: Option<String>,
#[serde(rename = "groupid")]
pub r#groupid: Option<i64>,
#[serde(rename = "assignment")]
pub r#assignment: Option<i64>,
#[serde(rename = "latest")]
pub r#latest: Option<i64>,
#[serde(rename = "plugins")]
pub r#plugins: Option<r#ReturnsPreviousattemptsItemSubmissionPlugins>,
#[serde(rename = "gradingstatus")]
pub r#gradingstatus: Option<String>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsPreviousattemptsItemGrade {
#[serde(rename = "id")]
pub r#id: Option<i64>,
#[serde(rename = "assignment")]
pub r#assignment: Option<i64>,
#[serde(rename = "userid")]
pub r#userid: Option<i64>,
#[serde(rename = "attemptnumber")]
pub r#attemptnumber: Option<i64>,
#[serde(rename = "timecreated")]
pub r#timecreated: Option<i64>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "grader")]
pub r#grader: Option<i64>,
#[serde(rename = "grade")]
pub r#grade: Option<String>,
#[serde(rename = "gradefordisplay")]
pub r#gradefordisplay: Option<String>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsPreviousattemptsItemFeedbackpluginsItemFileareasItemFilesItem {
#[serde(rename = "filename")]
pub r#filename: Option<String>,
#[serde(rename = "filepath")]
pub r#filepath: Option<String>,
#[serde(rename = "filesize")]
pub r#filesize: Option<i64>,
#[serde(rename = "fileurl")]
pub r#fileurl: Option<String>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "mimetype")]
pub r#mimetype: Option<String>,
#[serde(rename = "isexternalfile")]
pub r#isexternalfile: Option<bool>,
#[serde(rename = "repositorytype")]
pub r#repositorytype: Option<String>,
}
pub type r#ReturnsPreviousattemptsItemFeedbackpluginsItemFileareasItemFiles =
Vec<ReturnsPreviousattemptsItemFeedbackpluginsItemFileareasItemFilesItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsPreviousattemptsItemFeedbackpluginsItemFileareasItem {
#[serde(rename = "area")]
pub r#area: Option<String>,
#[serde(rename = "files")]
pub r#files: Option<r#ReturnsPreviousattemptsItemFeedbackpluginsItemFileareasItemFiles>,
}
pub type r#ReturnsPreviousattemptsItemFeedbackpluginsItemFileareas =
Vec<ReturnsPreviousattemptsItemFeedbackpluginsItemFileareasItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsPreviousattemptsItemFeedbackpluginsItemEditorfieldsItem {
#[serde(rename = "name")]
pub r#name: Option<String>,
#[serde(rename = "description")]
pub r#description: Option<String>,
#[serde(rename = "text")]
pub r#text: Option<String>,
#[serde(rename = "format")]
pub r#format: Option<i64>,
}
pub type r#ReturnsPreviousattemptsItemFeedbackpluginsItemEditorfields =
Vec<ReturnsPreviousattemptsItemFeedbackpluginsItemEditorfieldsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsPreviousattemptsItemFeedbackpluginsItem {
#[serde(rename = "type")]
pub r#type: Option<String>,
#[serde(rename = "name")]
pub r#name: Option<String>,
#[serde(rename = "fileareas")]
pub r#fileareas: Option<r#ReturnsPreviousattemptsItemFeedbackpluginsItemFileareas>,
#[serde(rename = "editorfields")]
pub r#editorfields: Option<r#ReturnsPreviousattemptsItemFeedbackpluginsItemEditorfields>,
}
pub type r#ReturnsPreviousattemptsItemFeedbackplugins =
Vec<ReturnsPreviousattemptsItemFeedbackpluginsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsPreviousattemptsItem {
#[serde(rename = "attemptnumber")]
pub r#attemptnumber: Option<i64>,
#[serde(rename = "submission")]
pub r#submission: Option<ReturnsPreviousattemptsItemSubmission>,
#[serde(rename = "grade")]
pub r#grade: Option<ReturnsPreviousattemptsItemGrade>,
#[serde(rename = "feedbackplugins")]
pub r#feedbackplugins: Option<r#ReturnsPreviousattemptsItemFeedbackplugins>,
}
pub type r#ReturnsPreviousattempts = Vec<ReturnsPreviousattemptsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsAssignmentdataAttachmentsIntroItem {
#[serde(rename = "filename")]
pub r#filename: Option<String>,
#[serde(rename = "filepath")]
pub r#filepath: Option<String>,
#[serde(rename = "filesize")]
pub r#filesize: Option<i64>,
#[serde(rename = "fileurl")]
pub r#fileurl: Option<String>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "mimetype")]
pub r#mimetype: Option<String>,
#[serde(rename = "isexternalfile")]
pub r#isexternalfile: Option<bool>,
#[serde(rename = "repositorytype")]
pub r#repositorytype: Option<String>,
}
pub type r#ReturnsAssignmentdataAttachmentsIntro = Vec<ReturnsAssignmentdataAttachmentsIntroItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsAssignmentdataAttachmentsActivityItem {
#[serde(rename = "filename")]
pub r#filename: Option<String>,
#[serde(rename = "filepath")]
pub r#filepath: Option<String>,
#[serde(rename = "filesize")]
pub r#filesize: Option<i64>,
#[serde(rename = "fileurl")]
pub r#fileurl: Option<String>,
#[serde(rename = "timemodified")]
pub r#timemodified: Option<i64>,
#[serde(rename = "mimetype")]
pub r#mimetype: Option<String>,
#[serde(rename = "isexternalfile")]
pub r#isexternalfile: Option<bool>,
#[serde(rename = "repositorytype")]
pub r#repositorytype: Option<String>,
}
pub type r#ReturnsAssignmentdataAttachmentsActivity =
Vec<ReturnsAssignmentdataAttachmentsActivityItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsAssignmentdataAttachments {
#[serde(rename = "intro")]
pub r#intro: Option<r#ReturnsAssignmentdataAttachmentsIntro>,
#[serde(rename = "activity")]
pub r#activity: Option<r#ReturnsAssignmentdataAttachmentsActivity>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsAssignmentdata {
#[serde(rename = "attachments")]
pub r#attachments: Option<ReturnsAssignmentdataAttachments>,
#[serde(rename = "activity")]
pub r#activity: Option<String>,
#[serde(rename = "activityformat")]
pub r#activityformat: Option<i64>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsWarningsItem {
#[serde(rename = "item")]
pub r#item: Option<String>,
#[serde(rename = "itemid")]
pub r#itemid: Option<i64>,
#[serde(rename = "warningcode")]
pub r#warningcode: Option<String>,
#[serde(rename = "message")]
pub r#message: Option<String>,
}
pub type r#ReturnsWarnings = Vec<ReturnsWarningsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct Returns {
#[serde(rename = "gradingsummary")]
pub r#gradingsummary: Option<ReturnsGradingsummary>,
#[serde(rename = "lastattempt")]
pub r#lastattempt: Option<ReturnsLastattempt>,
#[serde(rename = "feedback")]
pub r#feedback: Option<ReturnsFeedback>,
#[serde(rename = "previousattempts")]
pub r#previousattempts: Option<r#ReturnsPreviousattempts>,
#[serde(rename = "assignmentdata")]
pub r#assignmentdata: Option<ReturnsAssignmentdata>,
#[serde(rename = "warnings")]
pub r#warnings: Option<r#ReturnsWarnings>,
}
pub async fn call<'a>(
client: &'a mut moodle_client::MoodleClient,
params: &'a mut Params,
) -> anyhow::Result<Returns> {
let json = client
.post("mod_assign_get_submission_status", params)
.await?;
serde_json::from_value(json).map_err(|e| e.into())
}
pub async fn call_raw<'a>(
client: &'a mut moodle_client::MoodleClient,
params: &'a mut Params,
) -> anyhow::Result<serde_json::Value> {
client
.post("mod_assign_get_submission_status", params)
.await
}