/*
 * VRChat API Documentation
 *
 *
 * Contact: me@ruby.js.org
 * Generated by: https://openapi-generator.tech
 */




#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct FileData {
    #[serde(rename = "category")]
    pub category: Category,
    #[serde(rename = "fileName")]
    pub file_name: String,
    #[serde(rename = "md5")]
    pub md5: String,
    #[serde(rename = "sizeInBytes")]
    pub size_in_bytes: i32,
    #[serde(rename = "status")]
    pub status: crate::models::FileStatus,
    #[serde(rename = "uploadId")]
    pub upload_id: String,
    #[serde(rename = "url")]
    pub url: String,
}

impl FileData {
    pub fn new(category: Category, file_name: String, md5: String, size_in_bytes: i32, status: crate::models::FileStatus, upload_id: String, url: String) -> FileData {
        FileData {
            category,
            file_name,
            md5,
            size_in_bytes,
            status,
            upload_id,
            url,
        }
    }
}

/// 
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Category {
    #[serde(rename = "multipart")]
    Multipart,
    #[serde(rename = "queued")]
    Queued,
    #[serde(rename = "simple")]
    Simple,
}

impl Default for Category {
    fn default() -> Category {
        Self::Multipart
    }
}

