asana 0.1.1

asana bindings for rust
Documentation
/*
 * Asana
 *
 * This is the interface for interacting with the [Asana Platform](https://developers.asana.com). Our API reference is generated from our [OpenAPI spec] (https://raw.githubusercontent.com/Asana/developer-docs/master/defs/asana_oas.yaml).
 *
 * The version of the OpenAPI document: 1.0
 *
 * Generated by: https://openapi-generator.tech
 */

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct StoryResponseAllOf {
    #[serde(rename = "created_by", skip_serializing_if = "Option::is_none")]
    pub created_by: Option<Box<crate::models::UserCompact>>,
    /// *Conditional*. Whether the text of the story has been edited after creation.
    #[serde(rename = "is_edited", skip_serializing_if = "Option::is_none")]
    pub is_edited: Option<bool>,
    /// *Deprecated - please use likes instead* *Conditional*. True if the story is hearted by the authorized user, false if not.
    #[serde(rename = "hearted", skip_serializing_if = "Option::is_none")]
    pub hearted: Option<bool>,
    /// *Deprecated - please use likes instead*  *Conditional*. Array of likes for users who have hearted this story.
    #[serde(rename = "hearts", skip_serializing_if = "Option::is_none")]
    pub hearts: Option<Vec<crate::models::Like>>,
    /// *Deprecated - please use likes instead*  *Conditional*. The number of users who have hearted this story.
    #[serde(rename = "num_hearts", skip_serializing_if = "Option::is_none")]
    pub num_hearts: Option<i32>,
    /// *Conditional*. True if the story is liked by the authorized user, false if not.
    #[serde(rename = "liked", skip_serializing_if = "Option::is_none")]
    pub liked: Option<bool>,
    /// *Conditional*. Array of likes for users who have liked this story.
    #[serde(rename = "likes", skip_serializing_if = "Option::is_none")]
    pub likes: Option<Vec<crate::models::Like>>,
    /// *Conditional*. The number of users who have liked this story.
    #[serde(rename = "num_likes", skip_serializing_if = "Option::is_none")]
    pub num_likes: Option<i32>,
    /// *Conditional*. A collection of previews to be displayed in the story.  *Note: This property only exists for comment stories.*
    #[serde(rename = "previews", skip_serializing_if = "Option::is_none")]
    pub previews: Option<Vec<crate::models::Preview>>,
    /// *Conditional*'
    #[serde(rename = "old_name", skip_serializing_if = "Option::is_none")]
    pub old_name: Option<String>,
    /// *Conditional*
    #[serde(rename = "new_name", skip_serializing_if = "Option::is_none")]
    pub new_name: Option<String>,
    #[serde(rename = "old_dates", skip_serializing_if = "Option::is_none")]
    pub old_dates: Option<Box<crate::models::StoryResponseDates>>,
    #[serde(rename = "new_dates", skip_serializing_if = "Option::is_none")]
    pub new_dates: Option<Box<crate::models::StoryResponseDates>>,
    /// *Conditional*
    #[serde(
        rename = "old_resource_subtype",
        skip_serializing_if = "Option::is_none"
    )]
    pub old_resource_subtype: Option<String>,
    /// *Conditional*
    #[serde(
        rename = "new_resource_subtype",
        skip_serializing_if = "Option::is_none"
    )]
    pub new_resource_subtype: Option<String>,
    #[serde(rename = "story", skip_serializing_if = "Option::is_none")]
    pub story: Option<Box<crate::models::StoryCompact>>,
    #[serde(rename = "assignee", skip_serializing_if = "Option::is_none")]
    pub assignee: Option<Box<crate::models::UserCompact>>,
    #[serde(rename = "follower", skip_serializing_if = "Option::is_none")]
    pub follower: Option<Box<crate::models::UserCompact>>,
    #[serde(rename = "old_section", skip_serializing_if = "Option::is_none")]
    pub old_section: Option<Box<crate::models::SectionCompact>>,
    #[serde(rename = "new_section", skip_serializing_if = "Option::is_none")]
    pub new_section: Option<Box<crate::models::SectionCompact>>,
    #[serde(rename = "task", skip_serializing_if = "Option::is_none")]
    pub task: Option<Box<crate::models::TaskCompact>>,
    #[serde(rename = "project", skip_serializing_if = "Option::is_none")]
    pub project: Option<Box<crate::models::ProjectCompact>>,
    #[serde(rename = "tag", skip_serializing_if = "Option::is_none")]
    pub tag: Option<Box<crate::models::TagCompact>>,
    #[serde(rename = "custom_field", skip_serializing_if = "Option::is_none")]
    pub custom_field: Option<Box<crate::models::CustomFieldCompact>>,
    /// *Conditional*
    #[serde(
        rename = "old_text_value",
        skip_serializing_if = "Option::is_none"
    )]
    pub old_text_value: Option<String>,
    /// *Conditional*
    #[serde(
        rename = "new_text_value",
        skip_serializing_if = "Option::is_none"
    )]
    pub new_text_value: Option<String>,
    /// *Conditional*
    #[serde(
        rename = "old_number_value",
        skip_serializing_if = "Option::is_none"
    )]
    pub old_number_value: Option<i32>,
    /// *Conditional*
    #[serde(
        rename = "new_number_value",
        skip_serializing_if = "Option::is_none"
    )]
    pub new_number_value: Option<i32>,
    #[serde(
        rename = "old_enum_value",
        skip_serializing_if = "Option::is_none"
    )]
    pub old_enum_value: Option<Box<crate::models::EnumOption>>,
    #[serde(
        rename = "new_enum_value",
        skip_serializing_if = "Option::is_none"
    )]
    pub new_enum_value: Option<Box<crate::models::EnumOption>>,
    /// *Conditional*
    #[serde(
        rename = "new_approval_status",
        skip_serializing_if = "Option::is_none"
    )]
    pub new_approval_status: Option<String>,
    /// *Conditional*
    #[serde(
        rename = "old_approval_status",
        skip_serializing_if = "Option::is_none"
    )]
    pub old_approval_status: Option<String>,
    #[serde(rename = "duplicate_of", skip_serializing_if = "Option::is_none")]
    pub duplicate_of: Option<Box<crate::models::TaskCompact>>,
    #[serde(
        rename = "duplicated_from",
        skip_serializing_if = "Option::is_none"
    )]
    pub duplicated_from: Option<Box<crate::models::TaskCompact>>,
    #[serde(rename = "dependency", skip_serializing_if = "Option::is_none")]
    pub dependency: Option<Box<crate::models::TaskCompact>>,
    /// The component of the Asana product the user used to trigger the story.
    #[serde(rename = "source", skip_serializing_if = "Option::is_none")]
    pub source: Option<Source>,
    /// The object this story is associated with. Currently may only be a task.
    #[serde(rename = "target", skip_serializing_if = "Option::is_none")]
    pub target: Option<Box<serde_json::Value>>,
}

impl StoryResponseAllOf {
    pub fn new() -> StoryResponseAllOf {
        StoryResponseAllOf {
            created_by: None,
            is_edited: None,
            hearted: None,
            hearts: None,
            num_hearts: None,
            liked: None,
            likes: None,
            num_likes: None,
            previews: None,
            old_name: None,
            new_name: None,
            old_dates: None,
            new_dates: None,
            old_resource_subtype: None,
            new_resource_subtype: None,
            story: None,
            assignee: None,
            follower: None,
            old_section: None,
            new_section: None,
            task: None,
            project: None,
            tag: None,
            custom_field: None,
            old_text_value: None,
            new_text_value: None,
            old_number_value: None,
            new_number_value: None,
            old_enum_value: None,
            new_enum_value: None,
            new_approval_status: None,
            old_approval_status: None,
            duplicate_of: None,
            duplicated_from: None,
            dependency: None,
            source: None,
            target: None,
        }
    }
}

/// The component of the Asana product the user used to trigger the story.
#[derive(
    Clone,
    Copy,
    Debug,
    Eq,
    PartialEq,
    Ord,
    PartialOrd,
    Hash,
    Serialize,
    Deserialize
)]
pub enum Source {
    #[serde(rename = "web")]
    Web,
    #[serde(rename = "email")]
    Email,
    #[serde(rename = "mobile")]
    Mobile,
    #[serde(rename = "api")]
    Api,
    #[serde(rename = "unknown")]
    Unknown,
}