use serde::{Deserialize, Serialize}; /*
                                      * BigQuery API
                                      *
                                      * A data platform for customers to create, manage, share and query data.
                                      *
                                      * The version of the OpenAPI document: v2
                                      *
                                      * Generated by: https://openapi-generator.tech
                                      */

#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct TableListTablesInner {
    #[serde(rename = "clustering", skip_serializing_if = "Option::is_none")]
    pub clustering: Option<Box<crate::google_rest_apis::bigquery_v2::models::Clustering>>,
    /// The time when this table was created, in milliseconds since the epoch.
    #[serde(rename = "creationTime", skip_serializing_if = "Option::is_none")]
    pub creation_time: Option<String>,
    /// [Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.
    #[serde(rename = "expirationTime", skip_serializing_if = "Option::is_none")]
    pub expiration_time: Option<String>,
    /// The user-friendly name for this table.
    #[serde(rename = "friendlyName", skip_serializing_if = "Option::is_none")]
    pub friendly_name: Option<String>,
    /// An opaque ID of the table
    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
    pub id: Option<String>,
    /// The resource type.
    #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
    pub kind: Option<String>,
    /// The labels associated with this table. You can use these to organize and group your tables.
    #[serde(rename = "labels", skip_serializing_if = "Option::is_none")]
    pub labels: Option<::std::collections::HashMap<String, String>>,
    #[serde(rename = "rangePartitioning", skip_serializing_if = "Option::is_none")]
    pub range_partitioning:
        Option<Box<crate::google_rest_apis::bigquery_v2::models::RangePartitioning>>,
    #[serde(rename = "tableReference", skip_serializing_if = "Option::is_none")]
    pub table_reference: Option<Box<crate::google_rest_apis::bigquery_v2::models::TableReference>>,
    #[serde(rename = "timePartitioning", skip_serializing_if = "Option::is_none")]
    pub time_partitioning:
        Option<Box<crate::google_rest_apis::bigquery_v2::models::TimePartitioning>>,
    /// The type of table. Possible values are: TABLE, VIEW.
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub r#type: Option<String>,
    #[serde(rename = "view", skip_serializing_if = "Option::is_none")]
    pub view: Option<Box<crate::google_rest_apis::bigquery_v2::models::TableListTablesInnerView>>,
}

impl TableListTablesInner {
    pub fn new() -> TableListTablesInner {
        TableListTablesInner {
            clustering: None,
            creation_time: None,
            expiration_time: None,
            friendly_name: None,
            id: None,
            kind: None,
            labels: None,
            range_partitioning: None,
            table_reference: None,
            time_partitioning: None,
            r#type: None,
            view: None,
        }
    }
}
