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 PortfolioResponse {
    /// Globally unique identifier of the resource, as a string.
    #[serde(rename = "gid", skip_serializing_if = "Option::is_none")]
    pub gid: Option<String>,
    /// The base type of this resource.
    #[serde(rename = "resource_type", skip_serializing_if = "Option::is_none")]
    pub resource_type: Option<String>,
    /// The name of the portfolio.
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    /// Color of the portfolio.
    #[serde(rename = "color", skip_serializing_if = "Option::is_none")]
    pub color: Option<Color>,
    /// The time at which this resource was created.
    #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
    pub created_at: Option<String>,
    #[serde(rename = "created_by", skip_serializing_if = "Option::is_none")]
    pub created_by: Option<Box<crate::models::UserCompact>>,
    /// Array of custom field settings applied to the portfolio.
    #[serde(
        rename = "custom_field_settings",
        skip_serializing_if = "Option::is_none"
    )]
    pub custom_field_settings:
        Option<Vec<crate::models::CustomFieldSettingResponse>>,
    /// The localized day on which this portfolio is due. This takes a date with format YYYY-MM-DD.
    #[serde(rename = "due_on", skip_serializing_if = "Option::is_none")]
    pub due_on: Option<String>,
    #[serde(rename = "members", skip_serializing_if = "Option::is_none")]
    pub members: Option<Vec<crate::models::UserCompact>>,
    #[serde(rename = "owner", skip_serializing_if = "Option::is_none")]
    pub owner: Option<Box<crate::models::UserCompact>>,
    /// The day on which work for this portfolio begins, or null if the portfolio has no start date. This takes a date with `YYYY-MM-DD` format. *Note: `due_on` must be present in the request when setting or unsetting the `start_on` parameter. Additionally, start_on and due_on cannot be the same date.*
    #[serde(rename = "start_on", skip_serializing_if = "Option::is_none")]
    pub start_on: Option<String>,
    #[serde(rename = "workspace", skip_serializing_if = "Option::is_none")]
    pub workspace: Option<Box<crate::models::WorkspaceCompact>>,
    /// A url that points directly to the object within Asana.
    #[serde(rename = "permalink_url", skip_serializing_if = "Option::is_none")]
    pub permalink_url: Option<String>,
}

impl PortfolioResponse {
    pub fn new() -> PortfolioResponse {
        PortfolioResponse {
            gid: None,
            resource_type: None,
            name: None,
            color: None,
            created_at: None,
            created_by: None,
            custom_field_settings: None,
            due_on: None,
            members: None,
            owner: None,
            start_on: None,
            workspace: None,
            permalink_url: None,
        }
    }
}

/// Color of the portfolio.
#[derive(
    Clone,
    Copy,
    Debug,
    Eq,
    PartialEq,
    Ord,
    PartialOrd,
    Hash,
    Serialize,
    Deserialize
)]
pub enum Color {
    #[serde(rename = "dark-pink")]
    DarkPink,
    #[serde(rename = "dark-green")]
    DarkGreen,
    #[serde(rename = "dark-blue")]
    DarkBlue,
    #[serde(rename = "dark-red")]
    DarkRed,
    #[serde(rename = "dark-teal")]
    DarkTeal,
    #[serde(rename = "dark-brown")]
    DarkBrown,
    #[serde(rename = "dark-orange")]
    DarkOrange,
    #[serde(rename = "dark-purple")]
    DarkPurple,
    #[serde(rename = "dark-warm-gray")]
    DarkWarmGray,
    #[serde(rename = "light-pink")]
    LightPink,
    #[serde(rename = "light-green")]
    LightGreen,
    #[serde(rename = "light-blue")]
    LightBlue,
    #[serde(rename = "light-red")]
    LightRed,
    #[serde(rename = "light-teal")]
    LightTeal,
    #[serde(rename = "light-brown")]
    LightBrown,
    #[serde(rename = "light-orange")]
    LightOrange,
    #[serde(rename = "light-purple")]
    LightPurple,
    #[serde(rename = "light-warm-gray")]
    LightWarmGray,
}