# 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.Services do
  @moduledoc """
  Conveniences or help provided by the property to facilitate an easier, more comfortable stay.

  ## Attributes

  *   `baggageStorage` (*type:* `boolean()`, *default:* `nil`) - Baggage storage. A provision for guests to leave their bags at the hotel when they arrive for their stay before the official check-in time. May or may not apply for guests who wish to leave their bags after check-out and before departing the locale. Also known as bag dropoff.
  *   `baggageStorageException` (*type:* `String.t`, *default:* `nil`) - Baggage storage exception.
  *   `concierge` (*type:* `boolean()`, *default:* `nil`) - Concierge. Hotel staff member(s) responsible for facilitating an easy, comfortable stay through making reservations for meals, sourcing theater tickets, arranging tours, finding a doctor, making recommendations, and answering questions.
  *   `conciergeException` (*type:* `String.t`, *default:* `nil`) - Concierge exception.
  *   `convenienceStore` (*type:* `boolean()`, *default:* `nil`) - Convenience store. A shop at the hotel primarily selling snacks, drinks, non-prescription medicines, health and beauty aids, magazines and newspapers.
  *   `convenienceStoreException` (*type:* `String.t`, *default:* `nil`) - Convenience store exception.
  *   `currencyExchange` (*type:* `boolean()`, *default:* `nil`) - Currency exchange. A staff member or automated machine tasked with the transaction of providing the native currency of the hotel's locale in exchange for the foreign currency provided by a guest.
  *   `currencyExchangeException` (*type:* `String.t`, *default:* `nil`) - Currency exchange exception.
  *   `elevator` (*type:* `boolean()`, *default:* `nil`) - Elevator. A passenger elevator that transports guests from one story to another. Also known as lift.
  *   `elevatorException` (*type:* `String.t`, *default:* `nil`) - Elevator exception.
  *   `frontDesk` (*type:* `boolean()`, *default:* `nil`) - Front desk. A counter or desk in the lobby or the immediate interior of the hotel where a member of the staff greets guests and processes the information related to their stay (including check-in and check-out). May or may not be manned and open 24/7.
  *   `frontDeskException` (*type:* `String.t`, *default:* `nil`) - Front desk exception.
  *   `fullServiceLaundry` (*type:* `boolean()`, *default:* `nil`) - Full service laundry. Laundry and dry cleaning facilitated and handled by the hotel on behalf of the guest. Does not include the provision for guests to do their own laundry in on-site machines.
  *   `fullServiceLaundryException` (*type:* `String.t`, *default:* `nil`) - Full service laundry exception.
  *   `giftShop` (*type:* `boolean()`, *default:* `nil`) - Gift shop. An on-site store primarily selling souvenirs, mementos and other gift items. May or may not also sell sundries, magazines and newspapers, clothing, or snacks.
  *   `giftShopException` (*type:* `String.t`, *default:* `nil`) - Gift shop exception.
  *   `languagesSpoken` (*type:* `list(GoogleApi.MyBusinessLodging.V1.Model.LanguageSpoken.t)`, *default:* `nil`) - Languages spoken by at least one staff member.
  *   `selfServiceLaundry` (*type:* `boolean()`, *default:* `nil`) - Self service laundry. On-site clothes washers and dryers accessible to guests for the purpose of washing and drying their own clothes. May or may not require payment to use the machines.
  *   `selfServiceLaundryException` (*type:* `String.t`, *default:* `nil`) - Self service laundry exception.
  *   `socialHour` (*type:* `boolean()`, *default:* `nil`) - Social hour. A reception with complimentary soft drinks, tea, coffee, wine and/or cocktails in the afternoon or evening. Can be hosted by hotel staff or guests may serve themselves. Also known as wine hour. The availability of coffee/tea in the lobby throughout the day does not constitute a social or wine hour.
  *   `socialHourException` (*type:* `String.t`, *default:* `nil`) - Social hour exception.
  *   `twentyFourHourFrontDesk` (*type:* `boolean()`, *default:* `nil`) - 24hr front desk. Front desk is staffed 24 hours a day.
  *   `twentyFourHourFrontDeskException` (*type:* `String.t`, *default:* `nil`) - 24hr front desk exception.
  *   `wakeUpCalls` (*type:* `boolean()`, *default:* `nil`) - Wake up calls. By direction of the guest, a hotel staff member will phone the guest unit at the requested hour. Also known as morning call.
  *   `wakeUpCallsException` (*type:* `String.t`, *default:* `nil`) - Wake up calls exception.
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :baggageStorage => boolean() | nil,
          :baggageStorageException => String.t() | nil,
          :concierge => boolean() | nil,
          :conciergeException => String.t() | nil,
          :convenienceStore => boolean() | nil,
          :convenienceStoreException => String.t() | nil,
          :currencyExchange => boolean() | nil,
          :currencyExchangeException => String.t() | nil,
          :elevator => boolean() | nil,
          :elevatorException => String.t() | nil,
          :frontDesk => boolean() | nil,
          :frontDeskException => String.t() | nil,
          :fullServiceLaundry => boolean() | nil,
          :fullServiceLaundryException => String.t() | nil,
          :giftShop => boolean() | nil,
          :giftShopException => String.t() | nil,
          :languagesSpoken => list(GoogleApi.MyBusinessLodging.V1.Model.LanguageSpoken.t()) | nil,
          :selfServiceLaundry => boolean() | nil,
          :selfServiceLaundryException => String.t() | nil,
          :socialHour => boolean() | nil,
          :socialHourException => String.t() | nil,
          :twentyFourHourFrontDesk => boolean() | nil,
          :twentyFourHourFrontDeskException => String.t() | nil,
          :wakeUpCalls => boolean() | nil,
          :wakeUpCallsException => String.t() | nil
        }

  field(:baggageStorage)
  field(:baggageStorageException)
  field(:concierge)
  field(:conciergeException)
  field(:convenienceStore)
  field(:convenienceStoreException)
  field(:currencyExchange)
  field(:currencyExchangeException)
  field(:elevator)
  field(:elevatorException)
  field(:frontDesk)
  field(:frontDeskException)
  field(:fullServiceLaundry)
  field(:fullServiceLaundryException)
  field(:giftShop)
  field(:giftShopException)
  field(:languagesSpoken, as: GoogleApi.MyBusinessLodging.V1.Model.LanguageSpoken, type: :list)
  field(:selfServiceLaundry)
  field(:selfServiceLaundryException)
  field(:socialHour)
  field(:socialHourException)
  field(:twentyFourHourFrontDesk)
  field(:twentyFourHourFrontDeskException)
  field(:wakeUpCalls)
  field(:wakeUpCallsException)
end

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

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