canvas-lms-api 0.4.0

Rust client for the Instructure Canvas LMS REST API
Documentation
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};

#[derive(Debug, Default, Serialize, Deserialize)]
pub struct CreateCourseParams {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub course_code: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub start_at: Option<DateTime<Utc>>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub end_at: Option<DateTime<Utc>>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub license: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub is_public: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub is_public_to_auth_users: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub public_syllabus: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub public_description: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub allow_student_wiki_edits: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub allow_wiki_comments: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub allow_student_forum_attachments: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub open_enrollment: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub self_enrollment: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub restrict_enrollments_to_course_dates: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub term_id: Option<u64>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub sis_course_id: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub hide_final_grades: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub apply_assignment_group_weights: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub time_zone: Option<String>,
}

#[derive(Debug, Default, Serialize, Deserialize)]
pub struct UpdateCourseParams {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub course_code: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub start_at: Option<DateTime<Utc>>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub end_at: Option<DateTime<Utc>>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub syllabus_body: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub hide_final_grades: Option<bool>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub time_zone: Option<String>,
}