# 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.RealTimeBidding.V1.Model.DestinationNotWorkingEvidence do
  @moduledoc """
  Evidence of the creative's destination URL not functioning properly or having been incorrectly set up.

  ## Attributes

  *   `dnsError` (*type:* `String.t`, *default:* `nil`) - DNS lookup errors.
  *   `expandedUrl` (*type:* `String.t`, *default:* `nil`) - The full non-working URL.
  *   `httpError` (*type:* `integer()`, *default:* `nil`) - HTTP error code (for example, 404 or 5xx)
  *   `invalidPage` (*type:* `String.t`, *default:* `nil`) - Page was crawled successfully, but was detected as either a page with no content or an error page.
  *   `lastCheckTime` (*type:* `DateTime.t`, *default:* `nil`) - Approximate time when the ad destination was last checked.
  *   `platform` (*type:* `String.t`, *default:* `nil`) - Platform of the non-working URL.
  *   `redirectionError` (*type:* `String.t`, *default:* `nil`) - HTTP redirect chain error.
  *   `urlRejected` (*type:* `String.t`, *default:* `nil`) - Rejected because of malformed URLs or invalid requests.
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :dnsError => String.t() | nil,
          :expandedUrl => String.t() | nil,
          :httpError => integer() | nil,
          :invalidPage => String.t() | nil,
          :lastCheckTime => DateTime.t() | nil,
          :platform => String.t() | nil,
          :redirectionError => String.t() | nil,
          :urlRejected => String.t() | nil
        }

  field(:dnsError)
  field(:expandedUrl)
  field(:httpError)
  field(:invalidPage)
  field(:lastCheckTime, as: DateTime)
  field(:platform)
  field(:redirectionError)
  field(:urlRejected)
end

defimpl Poison.Decoder, for: GoogleApi.RealTimeBidding.V1.Model.DestinationNotWorkingEvidence do
  def decode(value, options) do
    GoogleApi.RealTimeBidding.V1.Model.DestinationNotWorkingEvidence.decode(value, options)
  end
end

defimpl Poison.Encoder, for: GoogleApi.RealTimeBidding.V1.Model.DestinationNotWorkingEvidence do
  def encode(value, options) do
    GoogleApi.Gax.ModelBase.encode(value, options)
  end
end
