gcloud-sdk 0.30.0

Async Google gRPC/REST APIs and the client implementation hiding complexity of GCP authentication based on Tonic middleware and Reqwest.
Documentation
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
                                      */

use crate::google_rest_apis::bigquery_v2::models;

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Dataset {
    /// [Optional] An array of objects that define dataset access for one or more entities. You can set this property when inserting or updating a dataset in order to control who is allowed to access the data. If unspecified at dataset creation time, BigQuery adds default dataset access for the following entities: access.specialGroup: projectReaders; access.role: READER; access.specialGroup: projectWriters; access.role: WRITER; access.specialGroup: projectOwners; access.role: OWNER; access.userByEmail: [dataset creator email]; access.role: OWNER;
    #[serde(rename = "access", skip_serializing_if = "Option::is_none")]
    pub access: Option<Vec<models::DatasetAccessInner>>,
    /// [Output-only] The time when this dataset was created, in milliseconds since the epoch.
    #[serde(rename = "creationTime", skip_serializing_if = "Option::is_none")]
    pub creation_time: Option<String>,
    #[serde(rename = "datasetReference", skip_serializing_if = "Option::is_none")]
    pub dataset_reference: Option<Box<models::DatasetReference>>,
    /// [Output-only] The default collation of the dataset.
    #[serde(rename = "defaultCollation", skip_serializing_if = "Option::is_none")]
    pub default_collation: Option<String>,
    #[serde(
        rename = "defaultEncryptionConfiguration",
        skip_serializing_if = "Option::is_none"
    )]
    pub default_encryption_configuration: Option<Box<models::EncryptionConfiguration>>,
    /// [Optional] The default partition expiration for all partitioned tables in the dataset, in milliseconds. Once this property is set, all newly-created partitioned tables in the dataset will have an expirationMs property in the timePartitioning settings set to this value, and changing the value will only affect new tables, not existing ones. The storage in a partition will have an expiration time of its partition time plus this value. Setting this property overrides the use of defaultTableExpirationMs for partitioned tables: only one of defaultTableExpirationMs and defaultPartitionExpirationMs will be used for any new partitioned table. If you provide an explicit timePartitioning.expirationMs when creating or updating a partitioned table, that value takes precedence over the default partition expiration time indicated by this property.
    #[serde(
        rename = "defaultPartitionExpirationMs",
        skip_serializing_if = "Option::is_none"
    )]
    pub default_partition_expiration_ms: Option<String>,
    /// [Optional] The default lifetime of all tables in the dataset, in milliseconds. The minimum value is 3600000 milliseconds (one hour). Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property.
    #[serde(
        rename = "defaultTableExpirationMs",
        skip_serializing_if = "Option::is_none"
    )]
    pub default_table_expiration_ms: Option<String>,
    /// [Optional] A user-friendly description of the dataset.
    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    /// [Output-only] A hash of the resource.
    #[serde(rename = "etag", skip_serializing_if = "Option::is_none")]
    pub etag: Option<String>,
    /// [Optional] A descriptive name for the dataset.
    #[serde(rename = "friendlyName", skip_serializing_if = "Option::is_none")]
    pub friendly_name: Option<String>,
    /// [Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.
    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
    pub id: Option<String>,
    /// [Optional] Indicates if table names are case insensitive in the dataset.
    #[serde(rename = "isCaseInsensitive", skip_serializing_if = "Option::is_none")]
    pub is_case_insensitive: Option<bool>,
    /// [Output-only] The resource type.
    #[serde(rename = "kind", skip_serializing_if = "Option::is_none")]
    pub kind: Option<String>,
    /// The labels associated with this dataset. You can use these to organize and group your datasets. You can set this property when inserting or updating a dataset. See Creating and Updating Dataset Labels for more information.
    #[serde(rename = "labels", skip_serializing_if = "Option::is_none")]
    pub labels: Option<std::collections::HashMap<String, String>>,
    /// [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
    #[serde(rename = "lastModifiedTime", skip_serializing_if = "Option::is_none")]
    pub last_modified_time: Option<String>,
    /// The geographic location where the dataset should reside. The default value is US. See details at https://cloud.google.com/bigquery/docs/locations.
    #[serde(rename = "location", skip_serializing_if = "Option::is_none")]
    pub location: Option<String>,
    /// [Optional] Number of hours for the max time travel for all tables in the dataset.
    #[serde(rename = "maxTimeTravelHours", skip_serializing_if = "Option::is_none")]
    pub max_time_travel_hours: Option<String>,
    /// [Output-only] Reserved for future use.
    #[serde(rename = "satisfiesPzs", skip_serializing_if = "Option::is_none")]
    pub satisfies_pzs: Option<bool>,
    /// [Output-only] A URL that can be used to access the resource again. You can use this URL in Get or Update requests to the resource.
    #[serde(rename = "selfLink", skip_serializing_if = "Option::is_none")]
    pub self_link: Option<String>,
    /// [Optional]The tags associated with this dataset. Tag keys are globally unique.
    #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
    pub tags: Option<Vec<models::DatasetTagsInner>>,
}

impl Dataset {
    pub fn new() -> Dataset {
        Dataset {
            access: None,
            creation_time: None,
            dataset_reference: None,
            default_collation: None,
            default_encryption_configuration: None,
            default_partition_expiration_ms: None,
            default_table_expiration_ms: None,
            description: None,
            etag: None,
            friendly_name: None,
            id: None,
            is_case_insensitive: None,
            kind: None,
            labels: None,
            last_modified_time: None,
            location: None,
            max_time_travel_hours: None,
            satisfies_pzs: None,
            self_link: None,
            tags: None,
        }
    }
}