# 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.MyBusinessLodging.V1.Model.Pools do
  @moduledoc """
  Swimming pool or recreational water facilities available at the hotel.

  ## Attributes

  *   `adultPool` (*type:* `boolean()`, *default:* `nil`) - Adult pool. A pool restricted for use by adults only. Can be indoors or outdoors.
  *   `adultPoolException` (*type:* `String.t`, *default:* `nil`) - Adult pool exception.
  *   `hotTub` (*type:* `boolean()`, *default:* `nil`) - Hot tub. A man-made pool containing bubbling water maintained at a higher temperature and circulated by aerating jets for the purpose of soaking, relaxation and hydrotherapy. Can be indoors or outdoors. Not used for active swimming. Also known as Jacuzzi. Hot tub must be in a common area where all guests can access it. Does not apply to room-specific hot tubs that are only accessible to guest occupying that room.
  *   `hotTubException` (*type:* `String.t`, *default:* `nil`) - Hot tub exception.
  *   `indoorPool` (*type:* `boolean()`, *default:* `nil`) - Indoor pool. A pool located inside the hotel and available for guests to use for swimming and/or soaking. Use may or may not be restricted to adults and/or children.
  *   `indoorPoolException` (*type:* `String.t`, *default:* `nil`) - Indoor pool exception.
  *   `indoorPoolsCount` (*type:* `integer()`, *default:* `nil`) - Indoor pools count. The sum of all indoor pools at the hotel.
  *   `indoorPoolsCountException` (*type:* `String.t`, *default:* `nil`) - Indoor pools count exception.
  *   `lazyRiver` (*type:* `boolean()`, *default:* `nil`) - Lazy river. A man-made pool or several interconnected recreational pools built to mimic the shape and current of a winding river where guests float in the water on inflated rubber tubes. Can be indoors or outdoors.
  *   `lazyRiverException` (*type:* `String.t`, *default:* `nil`) - Lazy river exception.
  *   `lifeguard` (*type:* `boolean()`, *default:* `nil`) - Lifeguard. A trained member of the hotel staff stationed by the hotel's indoor or outdoor swimming area and responsible for the safety of swimming guests.
  *   `lifeguardException` (*type:* `String.t`, *default:* `nil`) - Lifeguard exception.
  *   `outdoorPool` (*type:* `boolean()`, *default:* `nil`) - Outdoor pool. A pool located outside on the grounds of the hotel and available for guests to use for swimming, soaking or recreation. Use may or may not be restricted to adults and/or children.
  *   `outdoorPoolException` (*type:* `String.t`, *default:* `nil`) - Outdoor pool exception.
  *   `outdoorPoolsCount` (*type:* `integer()`, *default:* `nil`) - Outdoor pools count. The sum of all outdoor pools at the hotel.
  *   `outdoorPoolsCountException` (*type:* `String.t`, *default:* `nil`) - Outdoor pools count exception.
  *   `pool` (*type:* `boolean()`, *default:* `nil`) - Pool. The presence of a pool, either indoors or outdoors, for guests to use for swimming and/or soaking. Use may or may not be restricted to adults and/or children.
  *   `poolException` (*type:* `String.t`, *default:* `nil`) - Pool exception.
  *   `poolsCount` (*type:* `integer()`, *default:* `nil`) - Pools count. The sum of all pools at the hotel.
  *   `poolsCountException` (*type:* `String.t`, *default:* `nil`) - Pools count exception.
  *   `wadingPool` (*type:* `boolean()`, *default:* `nil`) - Wading pool. A shallow pool designed for small children to play in. Can be indoors or outdoors. Also known as kiddie pool.
  *   `wadingPoolException` (*type:* `String.t`, *default:* `nil`) - Wading pool exception.
  *   `waterPark` (*type:* `boolean()`, *default:* `nil`) - Water park. An aquatic recreation area with a large pool or series of pools that has features such as a water slide or tube, wavepool, fountains, rope swings, and/or obstacle course. Can be indoors or outdoors. Also known as adventure pool.
  *   `waterParkException` (*type:* `String.t`, *default:* `nil`) - Water park exception.
  *   `waterslide` (*type:* `boolean()`, *default:* `nil`) - Waterslide. A continuously wetted chute positioned by an indoor or outdoor pool which people slide down into the water.
  *   `waterslideException` (*type:* `String.t`, *default:* `nil`) - Waterslide exception.
  *   `wavePool` (*type:* `boolean()`, *default:* `nil`) - Wave pool. A large indoor or outdoor pool with a machine that produces water currents to mimic the ocean's crests.
  *   `wavePoolException` (*type:* `String.t`, *default:* `nil`) - Wave pool exception.
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :adultPool => boolean() | nil,
          :adultPoolException => String.t() | nil,
          :hotTub => boolean() | nil,
          :hotTubException => String.t() | nil,
          :indoorPool => boolean() | nil,
          :indoorPoolException => String.t() | nil,
          :indoorPoolsCount => integer() | nil,
          :indoorPoolsCountException => String.t() | nil,
          :lazyRiver => boolean() | nil,
          :lazyRiverException => String.t() | nil,
          :lifeguard => boolean() | nil,
          :lifeguardException => String.t() | nil,
          :outdoorPool => boolean() | nil,
          :outdoorPoolException => String.t() | nil,
          :outdoorPoolsCount => integer() | nil,
          :outdoorPoolsCountException => String.t() | nil,
          :pool => boolean() | nil,
          :poolException => String.t() | nil,
          :poolsCount => integer() | nil,
          :poolsCountException => String.t() | nil,
          :wadingPool => boolean() | nil,
          :wadingPoolException => String.t() | nil,
          :waterPark => boolean() | nil,
          :waterParkException => String.t() | nil,
          :waterslide => boolean() | nil,
          :waterslideException => String.t() | nil,
          :wavePool => boolean() | nil,
          :wavePoolException => String.t() | nil
        }

  field(:adultPool)
  field(:adultPoolException)
  field(:hotTub)
  field(:hotTubException)
  field(:indoorPool)
  field(:indoorPoolException)
  field(:indoorPoolsCount)
  field(:indoorPoolsCountException)
  field(:lazyRiver)
  field(:lazyRiverException)
  field(:lifeguard)
  field(:lifeguardException)
  field(:outdoorPool)
  field(:outdoorPoolException)
  field(:outdoorPoolsCount)
  field(:outdoorPoolsCountException)
  field(:pool)
  field(:poolException)
  field(:poolsCount)
  field(:poolsCountException)
  field(:wadingPool)
  field(:wadingPoolException)
  field(:waterPark)
  field(:waterParkException)
  field(:waterslide)
  field(:waterslideException)
  field(:wavePool)
  field(:wavePoolException)
end

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

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