# 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.LivingAreaEating do
  @moduledoc """
  Information about eating features in the living area.

  ## Attributes

  *   `coffeeMaker` (*type:* `boolean()`, *default:* `nil`) - Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
  *   `coffeeMakerException` (*type:* `String.t`, *default:* `nil`) - Coffee maker exception.
  *   `cookware` (*type:* `boolean()`, *default:* `nil`) - Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
  *   `cookwareException` (*type:* `String.t`, *default:* `nil`) - Cookware exception.
  *   `dishwasher` (*type:* `boolean()`, *default:* `nil`) - Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
  *   `dishwasherException` (*type:* `String.t`, *default:* `nil`) - Dishwasher exception.
  *   `indoorGrill` (*type:* `boolean()`, *default:* `nil`) - Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
  *   `indoorGrillException` (*type:* `String.t`, *default:* `nil`) - Indoor grill exception.
  *   `kettle` (*type:* `boolean()`, *default:* `nil`) - Kettle. A covered container with a handle and a spout used for boiling water.
  *   `kettleException` (*type:* `String.t`, *default:* `nil`) - Kettle exception.
  *   `kitchenAvailable` (*type:* `boolean()`, *default:* `nil`) - Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
  *   `kitchenAvailableException` (*type:* `String.t`, *default:* `nil`) - Kitchen available exception.
  *   `microwave` (*type:* `boolean()`, *default:* `nil`) - Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
  *   `microwaveException` (*type:* `String.t`, *default:* `nil`) - Microwave exception.
  *   `minibar` (*type:* `boolean()`, *default:* `nil`) - Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
  *   `minibarException` (*type:* `String.t`, *default:* `nil`) - Minibar exception.
  *   `outdoorGrill` (*type:* `boolean()`, *default:* `nil`) - Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
  *   `outdoorGrillException` (*type:* `String.t`, *default:* `nil`) - Outdoor grill exception.
  *   `oven` (*type:* `boolean()`, *default:* `nil`) - Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
  *   `ovenException` (*type:* `String.t`, *default:* `nil`) - Oven exception.
  *   `refrigerator` (*type:* `boolean()`, *default:* `nil`) - Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
  *   `refrigeratorException` (*type:* `String.t`, *default:* `nil`) - Refrigerator exception.
  *   `sink` (*type:* `boolean()`, *default:* `nil`) - Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
  *   `sinkException` (*type:* `String.t`, *default:* `nil`) - Sink exception.
  *   `snackbar` (*type:* `boolean()`, *default:* `nil`) - Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
  *   `snackbarException` (*type:* `String.t`, *default:* `nil`) - Snackbar exception.
  *   `stove` (*type:* `boolean()`, *default:* `nil`) - Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
  *   `stoveException` (*type:* `String.t`, *default:* `nil`) - Stove exception.
  *   `teaStation` (*type:* `boolean()`, *default:* `nil`) - Tea station. A small area with the supplies needed to heat water and make tea.
  *   `teaStationException` (*type:* `String.t`, *default:* `nil`) - Tea station exception.
  *   `toaster` (*type:* `boolean()`, *default:* `nil`) - Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
  *   `toasterException` (*type:* `String.t`, *default:* `nil`) - Toaster exception.
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :coffeeMaker => boolean() | nil,
          :coffeeMakerException => String.t() | nil,
          :cookware => boolean() | nil,
          :cookwareException => String.t() | nil,
          :dishwasher => boolean() | nil,
          :dishwasherException => String.t() | nil,
          :indoorGrill => boolean() | nil,
          :indoorGrillException => String.t() | nil,
          :kettle => boolean() | nil,
          :kettleException => String.t() | nil,
          :kitchenAvailable => boolean() | nil,
          :kitchenAvailableException => String.t() | nil,
          :microwave => boolean() | nil,
          :microwaveException => String.t() | nil,
          :minibar => boolean() | nil,
          :minibarException => String.t() | nil,
          :outdoorGrill => boolean() | nil,
          :outdoorGrillException => String.t() | nil,
          :oven => boolean() | nil,
          :ovenException => String.t() | nil,
          :refrigerator => boolean() | nil,
          :refrigeratorException => String.t() | nil,
          :sink => boolean() | nil,
          :sinkException => String.t() | nil,
          :snackbar => boolean() | nil,
          :snackbarException => String.t() | nil,
          :stove => boolean() | nil,
          :stoveException => String.t() | nil,
          :teaStation => boolean() | nil,
          :teaStationException => String.t() | nil,
          :toaster => boolean() | nil,
          :toasterException => String.t() | nil
        }

  field(:coffeeMaker)
  field(:coffeeMakerException)
  field(:cookware)
  field(:cookwareException)
  field(:dishwasher)
  field(:dishwasherException)
  field(:indoorGrill)
  field(:indoorGrillException)
  field(:kettle)
  field(:kettleException)
  field(:kitchenAvailable)
  field(:kitchenAvailableException)
  field(:microwave)
  field(:microwaveException)
  field(:minibar)
  field(:minibarException)
  field(:outdoorGrill)
  field(:outdoorGrillException)
  field(:oven)
  field(:ovenException)
  field(:refrigerator)
  field(:refrigeratorException)
  field(:sink)
  field(:sinkException)
  field(:snackbar)
  field(:snackbarException)
  field(:stove)
  field(:stoveException)
  field(:teaStation)
  field(:teaStationException)
  field(:toaster)
  field(:toasterException)
end

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

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