# 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.YouTube.V3.Model.ChannelSnippet do
  @moduledoc """
  Basic details about a channel, including title, description and thumbnails.

  ## Attributes

  *   `country` (*type:* `String.t`, *default:* `nil`) - The country of the channel.
  *   `customUrl` (*type:* `String.t`, *default:* `nil`) - The custom url of the channel.
  *   `defaultLanguage` (*type:* `String.t`, *default:* `nil`) - The language of the channel's default title and description.
  *   `description` (*type:* `String.t`, *default:* `nil`) - The description of the channel.
  *   `localized` (*type:* `GoogleApi.YouTube.V3.Model.ChannelLocalization.t`, *default:* `nil`) - Localized title and description, read-only.
  *   `publishedAt` (*type:* `DateTime.t`, *default:* `nil`) - The date and time that the channel was created.
  *   `thumbnails` (*type:* `GoogleApi.YouTube.V3.Model.ThumbnailDetails.t`, *default:* `nil`) - A map of thumbnail images associated with the channel. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail. When displaying thumbnails in your application, make sure that your code uses the image URLs exactly as they are returned in API responses. For example, your application should not use the http domain instead of the https domain in a URL returned in an API response. Beginning in July 2018, channel thumbnail URLs will only be available in the https domain, which is how the URLs appear in API responses. After that time, you might see broken images in your application if it tries to load YouTube images from the http domain. Thumbnail images might be empty for newly created channels and might take up to one day to populate.
  *   `title` (*type:* `String.t`, *default:* `nil`) - The channel's title.
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :country => String.t() | nil,
          :customUrl => String.t() | nil,
          :defaultLanguage => String.t() | nil,
          :description => String.t() | nil,
          :localized => GoogleApi.YouTube.V3.Model.ChannelLocalization.t() | nil,
          :publishedAt => DateTime.t() | nil,
          :thumbnails => GoogleApi.YouTube.V3.Model.ThumbnailDetails.t() | nil,
          :title => String.t() | nil
        }

  field(:country)
  field(:customUrl)
  field(:defaultLanguage)
  field(:description)
  field(:localized, as: GoogleApi.YouTube.V3.Model.ChannelLocalization)
  field(:publishedAt, as: DateTime)
  field(:thumbnails, as: GoogleApi.YouTube.V3.Model.ThumbnailDetails)
  field(:title)
end

defimpl Poison.Decoder, for: GoogleApi.YouTube.V3.Model.ChannelSnippet do
  def decode(value, options) do
    GoogleApi.YouTube.V3.Model.ChannelSnippet.decode(value, options)
  end
end

defimpl Poison.Encoder, for: GoogleApi.YouTube.V3.Model.ChannelSnippet do
  def encode(value, options) do
    GoogleApi.Gax.ModelBase.encode(value, options)
  end
end
