# 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.CloudSearch.V1.Model.RequestOptions do
  @moduledoc """
  Shared request options for all RPC methods.

  ## Attributes

  *   `debugOptions` (*type:* `GoogleApi.CloudSearch.V1.Model.DebugOptions.t`, *default:* `nil`) - Debug options of the request
  *   `languageCode` (*type:* `String.t`, *default:* `nil`) - The BCP-47 language code, such as "en-US" or "sr-Latn". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. For translations. Set this field using the language set in browser or for the page. In the event that the user's language preference is known, set this field to the known user language. When specified, the documents in search results are biased towards the specified language. The Suggest API uses this field as a hint to make better third-party autocomplete predictions.
  *   `searchApplicationId` (*type:* `String.t`, *default:* `nil`) - The ID generated when you create a search application using the [admin console](https://support.google.com/a/answer/9043922).
  *   `timeZone` (*type:* `String.t`, *default:* `nil`) - Current user's time zone id, such as "America/Los_Angeles" or "Australia/Sydney". These IDs are defined by [Unicode Common Locale Data Repository (CLDR)](http://cldr.unicode.org/) project, and currently available in the file [timezone.xml](http://unicode.org/repos/cldr/trunk/common/bcp47/timezone.xml). This field is used to correctly interpret date and time queries. If this field is not specified, the default time zone (UTC) is used.
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :debugOptions => GoogleApi.CloudSearch.V1.Model.DebugOptions.t() | nil,
          :languageCode => String.t() | nil,
          :searchApplicationId => String.t() | nil,
          :timeZone => String.t() | nil
        }

  field(:debugOptions, as: GoogleApi.CloudSearch.V1.Model.DebugOptions)
  field(:languageCode)
  field(:searchApplicationId)
  field(:timeZone)
end

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

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