lib/google_api/big_query/v2/model/dataset.ex

# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# NOTE: This file is auto generated by the elixir code generator program.
# Do not edit this file manually.

defmodule GoogleApi.BigQuery.V2.Model.Dataset do
  @moduledoc """


  ## Attributes

  *   `access` (*type:* `list(GoogleApi.BigQuery.V2.Model.DatasetAccess.t)`, *default:* `nil`) - [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;
  *   `creationTime` (*type:* `String.t`, *default:* `nil`) - [Output-only] The time when this dataset was created, in milliseconds since the epoch.
  *   `datasetReference` (*type:* `GoogleApi.BigQuery.V2.Model.DatasetReference.t`, *default:* `nil`) - [Required] A reference that identifies the dataset.
  *   `defaultCollation` (*type:* `String.t`, *default:* `nil`) - [Output-only] The default collation of the dataset.
  *   `defaultEncryptionConfiguration` (*type:* `GoogleApi.BigQuery.V2.Model.EncryptionConfiguration.t`, *default:* `nil`) - 
  *   `defaultPartitionExpirationMs` (*type:* `String.t`, *default:* `nil`) - [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.
  *   `defaultTableExpirationMs` (*type:* `String.t`, *default:* `nil`) - [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.
  *   `description` (*type:* `String.t`, *default:* `nil`) - [Optional] A user-friendly description of the dataset.
  *   `etag` (*type:* `String.t`, *default:* `nil`) - [Output-only] A hash of the resource.
  *   `friendlyName` (*type:* `String.t`, *default:* `nil`) - [Optional] A descriptive name for the dataset.
  *   `id` (*type:* `String.t`, *default:* `nil`) - [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.
  *   `isCaseInsensitive` (*type:* `boolean()`, *default:* `nil`) - [Optional] Indicates if table names are case insensitive in the dataset.
  *   `kind` (*type:* `String.t`, *default:* `bigquery#dataset`) - [Output-only] The resource type.
  *   `labels` (*type:* `map()`, *default:* `nil`) - 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.
  *   `lastModifiedTime` (*type:* `String.t`, *default:* `nil`) - [Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.
  *   `location` (*type:* `String.t`, *default:* `nil`) - The geographic location where the dataset should reside. The default value is US. See details at https://cloud.google.com/bigquery/docs/locations.
  *   `satisfiesPZS` (*type:* `boolean()`, *default:* `nil`) - [Output-only] Reserved for future use.
  *   `selfLink` (*type:* `String.t`, *default:* `nil`) - [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.
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :access => list(GoogleApi.BigQuery.V2.Model.DatasetAccess.t()) | nil,
          :creationTime => String.t() | nil,
          :datasetReference => GoogleApi.BigQuery.V2.Model.DatasetReference.t() | nil,
          :defaultCollation => String.t() | nil,
          :defaultEncryptionConfiguration =>
            GoogleApi.BigQuery.V2.Model.EncryptionConfiguration.t() | nil,
          :defaultPartitionExpirationMs => String.t() | nil,
          :defaultTableExpirationMs => String.t() | nil,
          :description => String.t() | nil,
          :etag => String.t() | nil,
          :friendlyName => String.t() | nil,
          :id => String.t() | nil,
          :isCaseInsensitive => boolean() | nil,
          :kind => String.t() | nil,
          :labels => map() | nil,
          :lastModifiedTime => String.t() | nil,
          :location => String.t() | nil,
          :satisfiesPZS => boolean() | nil,
          :selfLink => String.t() | nil
        }

  field(:access, as: GoogleApi.BigQuery.V2.Model.DatasetAccess, type: :list)
  field(:creationTime)
  field(:datasetReference, as: GoogleApi.BigQuery.V2.Model.DatasetReference)
  field(:defaultCollation)
  field(:defaultEncryptionConfiguration, as: GoogleApi.BigQuery.V2.Model.EncryptionConfiguration)
  field(:defaultPartitionExpirationMs)
  field(:defaultTableExpirationMs)
  field(:description)
  field(:etag)
  field(:friendlyName)
  field(:id)
  field(:isCaseInsensitive)
  field(:kind)
  field(:labels, type: :map)
  field(:lastModifiedTime)
  field(:location)
  field(:satisfiesPZS)
  field(:selfLink)
end

defimpl Poison.Decoder, for: GoogleApi.BigQuery.V2.Model.Dataset do
  def decode(value, options) do
    GoogleApi.BigQuery.V2.Model.Dataset.decode(value, options)
  end
end

defimpl Poison.Encoder, for: GoogleApi.BigQuery.V2.Model.Dataset do
  def encode(value, options) do
    GoogleApi.Gax.ModelBase.encode(value, options)
  end
end