# 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.ImageSettings do
  @moduledoc """
  Branding properties for images associated with the channel.

  ## Attributes

  *   `backgroundImageUrl` (*type:* `GoogleApi.YouTube.V3.Model.LocalizedProperty.t`, *default:* `nil`) - The URL for the background image shown on the video watch page. The image should be 1200px by 615px, with a maximum file size of 128k.
  *   `bannerExternalUrl` (*type:* `String.t`, *default:* `nil`) - This is generated when a ChannelBanner.Insert request has succeeded for the given channel.
  *   `bannerImageUrl` (*type:* `String.t`, *default:* `nil`) - Banner image. Desktop size (1060x175).
  *   `bannerMobileExtraHdImageUrl` (*type:* `String.t`, *default:* `nil`) - Banner image. Mobile size high resolution (1440x395).
  *   `bannerMobileHdImageUrl` (*type:* `String.t`, *default:* `nil`) - Banner image. Mobile size high resolution (1280x360).
  *   `bannerMobileImageUrl` (*type:* `String.t`, *default:* `nil`) - Banner image. Mobile size (640x175).
  *   `bannerMobileLowImageUrl` (*type:* `String.t`, *default:* `nil`) - Banner image. Mobile size low resolution (320x88).
  *   `bannerMobileMediumHdImageUrl` (*type:* `String.t`, *default:* `nil`) - Banner image. Mobile size medium/high resolution (960x263).
  *   `bannerTabletExtraHdImageUrl` (*type:* `String.t`, *default:* `nil`) - Banner image. Tablet size extra high resolution (2560x424).
  *   `bannerTabletHdImageUrl` (*type:* `String.t`, *default:* `nil`) - Banner image. Tablet size high resolution (2276x377).
  *   `bannerTabletImageUrl` (*type:* `String.t`, *default:* `nil`) - Banner image. Tablet size (1707x283).
  *   `bannerTabletLowImageUrl` (*type:* `String.t`, *default:* `nil`) - Banner image. Tablet size low resolution (1138x188).
  *   `bannerTvHighImageUrl` (*type:* `String.t`, *default:* `nil`) - Banner image. TV size high resolution (1920x1080).
  *   `bannerTvImageUrl` (*type:* `String.t`, *default:* `nil`) - Banner image. TV size extra high resolution (2120x1192).
  *   `bannerTvLowImageUrl` (*type:* `String.t`, *default:* `nil`) - Banner image. TV size low resolution (854x480).
  *   `bannerTvMediumImageUrl` (*type:* `String.t`, *default:* `nil`) - Banner image. TV size medium resolution (1280x720).
  *   `largeBrandedBannerImageImapScript` (*type:* `GoogleApi.YouTube.V3.Model.LocalizedProperty.t`, *default:* `nil`) - The image map script for the large banner image.
  *   `largeBrandedBannerImageUrl` (*type:* `GoogleApi.YouTube.V3.Model.LocalizedProperty.t`, *default:* `nil`) - The URL for the 854px by 70px image that appears below the video player in the expanded video view of the video watch page.
  *   `smallBrandedBannerImageImapScript` (*type:* `GoogleApi.YouTube.V3.Model.LocalizedProperty.t`, *default:* `nil`) - The image map script for the small banner image.
  *   `smallBrandedBannerImageUrl` (*type:* `GoogleApi.YouTube.V3.Model.LocalizedProperty.t`, *default:* `nil`) - The URL for the 640px by 70px banner image that appears below the video player in the default view of the video watch page. The URL for the image that appears above the top-left corner of the video player. This is a 25-pixel-high image with a flexible width that cannot exceed 170 pixels.
  *   `trackingImageUrl` (*type:* `String.t`, *default:* `nil`) - The URL for a 1px by 1px tracking pixel that can be used to collect statistics for views of the channel or video pages.
  *   `watchIconImageUrl` (*type:* `String.t`, *default:* `nil`) - 
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :backgroundImageUrl => GoogleApi.YouTube.V3.Model.LocalizedProperty.t() | nil,
          :bannerExternalUrl => String.t() | nil,
          :bannerImageUrl => String.t() | nil,
          :bannerMobileExtraHdImageUrl => String.t() | nil,
          :bannerMobileHdImageUrl => String.t() | nil,
          :bannerMobileImageUrl => String.t() | nil,
          :bannerMobileLowImageUrl => String.t() | nil,
          :bannerMobileMediumHdImageUrl => String.t() | nil,
          :bannerTabletExtraHdImageUrl => String.t() | nil,
          :bannerTabletHdImageUrl => String.t() | nil,
          :bannerTabletImageUrl => String.t() | nil,
          :bannerTabletLowImageUrl => String.t() | nil,
          :bannerTvHighImageUrl => String.t() | nil,
          :bannerTvImageUrl => String.t() | nil,
          :bannerTvLowImageUrl => String.t() | nil,
          :bannerTvMediumImageUrl => String.t() | nil,
          :largeBrandedBannerImageImapScript =>
            GoogleApi.YouTube.V3.Model.LocalizedProperty.t() | nil,
          :largeBrandedBannerImageUrl => GoogleApi.YouTube.V3.Model.LocalizedProperty.t() | nil,
          :smallBrandedBannerImageImapScript =>
            GoogleApi.YouTube.V3.Model.LocalizedProperty.t() | nil,
          :smallBrandedBannerImageUrl => GoogleApi.YouTube.V3.Model.LocalizedProperty.t() | nil,
          :trackingImageUrl => String.t() | nil,
          :watchIconImageUrl => String.t() | nil
        }

  field(:backgroundImageUrl, as: GoogleApi.YouTube.V3.Model.LocalizedProperty)
  field(:bannerExternalUrl)
  field(:bannerImageUrl)
  field(:bannerMobileExtraHdImageUrl)
  field(:bannerMobileHdImageUrl)
  field(:bannerMobileImageUrl)
  field(:bannerMobileLowImageUrl)
  field(:bannerMobileMediumHdImageUrl)
  field(:bannerTabletExtraHdImageUrl)
  field(:bannerTabletHdImageUrl)
  field(:bannerTabletImageUrl)
  field(:bannerTabletLowImageUrl)
  field(:bannerTvHighImageUrl)
  field(:bannerTvImageUrl)
  field(:bannerTvLowImageUrl)
  field(:bannerTvMediumImageUrl)
  field(:largeBrandedBannerImageImapScript, as: GoogleApi.YouTube.V3.Model.LocalizedProperty)
  field(:largeBrandedBannerImageUrl, as: GoogleApi.YouTube.V3.Model.LocalizedProperty)
  field(:smallBrandedBannerImageImapScript, as: GoogleApi.YouTube.V3.Model.LocalizedProperty)
  field(:smallBrandedBannerImageUrl, as: GoogleApi.YouTube.V3.Model.LocalizedProperty)
  field(:trackingImageUrl)
  field(:watchIconImageUrl)
end

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

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