/*
 * VRChat API Documentation
 *
 *
 * Contact: me@ariesclark.com
 * Generated by: https://openapi-generator.tech
 */




#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct InfoPushDataClickable {
    #[serde(rename = "command")]
    pub command: Command,
    /// In case of OpenURL, this would contain the link.
    #[serde(rename = "parameters", skip_serializing_if = "Option::is_none")]
    pub parameters: Option<Vec<String>>,
}

impl InfoPushDataClickable {
    pub fn new(command: Command) -> InfoPushDataClickable {
        InfoPushDataClickable {
            command,
            parameters: None,
        }
    }
}

/// 
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Command {
    #[serde(rename = "OpenURL")]
    OpenURL,
    #[serde(rename = "OpenVRCPlusMenu")]
    OpenVRCPlusMenu,
    #[serde(rename = "OpenSafetyMenu")]
    OpenSafetyMenu,
    #[serde(rename = "CannedWorldSearch")]
    CannedWorldSearch,
}

impl Default for Command {
    fn default() -> Command {
        Self::OpenURL
    }
}

