# 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.Wellness do
  @moduledoc """
  Guest facilities at the property to promote or maintain health, beauty, and fitness.

  ## Attributes

  *   `doctorOnCall` (*type:* `boolean()`, *default:* `nil`) - Doctor on call. The hotel has a contract with a medical professional who provides services to hotel guests should they fall ill during their stay. The doctor may or may not have an on-site office or be at the hotel at all times.
  *   `doctorOnCallException` (*type:* `String.t`, *default:* `nil`) - Doctor on call exception.
  *   `ellipticalMachine` (*type:* `boolean()`, *default:* `nil`) - Elliptical machine. An electric, stationary fitness machine with pedals that simulates climbing, walking or running and provides a user-controlled range of speeds and tensions. May not have arm-controlled levers to work out the upper body as well. Commonly found in a gym, fitness room, health center, or health club.
  *   `ellipticalMachineException` (*type:* `String.t`, *default:* `nil`) - Elliptical machine exception.
  *   `fitnessCenter` (*type:* `boolean()`, *default:* `nil`) - Fitness center. A room or building at the hotel containing equipment to promote physical activity, such as treadmills, elliptical machines, stationary bikes, weight machines, free weights, and/or stretching mats. Use of the fitness center can be free or for a fee. May or may not be staffed. May or may not offer instructor-led classes in various styles of physical conditioning. May or may not be open 24/7. May or may not include locker rooms and showers. Also known as health club, gym, fitness room, health center.
  *   `fitnessCenterException` (*type:* `String.t`, *default:* `nil`) - Fitness center exception.
  *   `freeFitnessCenter` (*type:* `boolean()`, *default:* `nil`) - Free fitness center. Guests may use the fitness center for free.
  *   `freeFitnessCenterException` (*type:* `String.t`, *default:* `nil`) - Free fitness center exception.
  *   `freeWeights` (*type:* `boolean()`, *default:* `nil`) - Free weights. Individual handheld fitness equipment of varied weights used for upper body strength training or bodybuilding. Also known as barbells, dumbbells, or kettlebells. Often stored on a rack with the weights arranged from light to heavy. Commonly found in a gym, fitness room, health center, or health club.
  *   `freeWeightsException` (*type:* `String.t`, *default:* `nil`) - Free weights exception.
  *   `massage` (*type:* `boolean()`, *default:* `nil`) - Massage. A service provided by a trained massage therapist involving the physical manipulation of a guest's muscles in order to achieve relaxation or pain relief.
  *   `massageException` (*type:* `String.t`, *default:* `nil`) - Massage exception.
  *   `salon` (*type:* `boolean()`, *default:* `nil`) - Salon. A room at the hotel where professionals provide hair styling services such as shampooing, blow drying, hair dos, hair cutting and hair coloring. Also known as hairdresser or beauty salon.
  *   `salonException` (*type:* `String.t`, *default:* `nil`) - Salon exception.
  *   `sauna` (*type:* `boolean()`, *default:* `nil`) - Sauna. A wood-paneled room heated to a high temperature where guests sit on built-in wood benches for the purpose of perspiring and relaxing their muscles. Can be dry or slightly wet heat. Not a steam room.
  *   `saunaException` (*type:* `String.t`, *default:* `nil`) - Sauna exception.
  *   `spa` (*type:* `boolean()`, *default:* `nil`) - Spa. A designated area, room or building at the hotel offering health and beauty treatment through such means as steam baths, exercise equipment, and massage. May also offer facials, nail care, and hair care. Services are usually available by appointment and for an additional fee. Does not apply if hotel only offers a steam room; must offer other beauty and/or health treatments as well.
  *   `spaException` (*type:* `String.t`, *default:* `nil`) - Spa exception.
  *   `treadmill` (*type:* `boolean()`, *default:* `nil`) - Treadmill. An electric stationary fitness machine that simulates a moving path to promote walking or running within a range of user-controlled speeds and inclines. Also known as running machine. Commonly found in a gym, fitness room, health center, or health club.
  *   `treadmillException` (*type:* `String.t`, *default:* `nil`) - Treadmill exception.
  *   `weightMachine` (*type:* `boolean()`, *default:* `nil`) - Weight machine. Non-electronic fitness equipment designed for the user to target the exertion of different muscles. Usually incorporates a padded seat, a stack of flat weights and various bars and pulleys. May be designed for toning a specific part of the body or may involve different user-controlled settings, hardware and pulleys so as to provide an overall workout in one machine. Commonly found in a gym, fitness center, fitness room, or health club.
  *   `weightMachineException` (*type:* `String.t`, *default:* `nil`) - Weight machine exception.
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :doctorOnCall => boolean() | nil,
          :doctorOnCallException => String.t() | nil,
          :ellipticalMachine => boolean() | nil,
          :ellipticalMachineException => String.t() | nil,
          :fitnessCenter => boolean() | nil,
          :fitnessCenterException => String.t() | nil,
          :freeFitnessCenter => boolean() | nil,
          :freeFitnessCenterException => String.t() | nil,
          :freeWeights => boolean() | nil,
          :freeWeightsException => String.t() | nil,
          :massage => boolean() | nil,
          :massageException => String.t() | nil,
          :salon => boolean() | nil,
          :salonException => String.t() | nil,
          :sauna => boolean() | nil,
          :saunaException => String.t() | nil,
          :spa => boolean() | nil,
          :spaException => String.t() | nil,
          :treadmill => boolean() | nil,
          :treadmillException => String.t() | nil,
          :weightMachine => boolean() | nil,
          :weightMachineException => String.t() | nil
        }

  field(:doctorOnCall)
  field(:doctorOnCallException)
  field(:ellipticalMachine)
  field(:ellipticalMachineException)
  field(:fitnessCenter)
  field(:fitnessCenterException)
  field(:freeFitnessCenter)
  field(:freeFitnessCenterException)
  field(:freeWeights)
  field(:freeWeightsException)
  field(:massage)
  field(:massageException)
  field(:salon)
  field(:salonException)
  field(:sauna)
  field(:saunaException)
  field(:spa)
  field(:spaException)
  field(:treadmill)
  field(:treadmillException)
  field(:weightMachine)
  field(:weightMachineException)
end

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

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