# 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.EnergyEfficiency do
  @moduledoc """
  Energy efficiency practices implemented at the hotel.

  ## Attributes

  *   `carbonFreeEnergySources` (*type:* `boolean()`, *default:* `nil`) - Carbon free energy sources. Property sources carbon-free electricity via at least one of the following methods: on-site clean energy generation, power purchase agreement(s) with clean energy generators, green power provided by electricity supplier, or purchases of Energy Attribute Certificates (such as Renewable Energy Certificates or Guarantees of Origin).
  *   `carbonFreeEnergySourcesException` (*type:* `String.t`, *default:* `nil`) - Carbon free energy sources exception.
  *   `energyConservationProgram` (*type:* `boolean()`, *default:* `nil`) - Energy conservation program. The property tracks corporate-level Scope 1 and 2 GHG emissions, and Scope 3 emissions if available. The property has a commitment to implement initiatives that reduce GHG emissions year over year. The property has shown an absolute reduction in emissions for at least 2 years. Emissions are either verfied by a third-party and/or published in external communications.
  *   `energyConservationProgramException` (*type:* `String.t`, *default:* `nil`) - Energy conservation program exception.
  *   `energyEfficientHeatingAndCoolingSystems` (*type:* `boolean()`, *default:* `nil`) - Energy efficient heating and cooling systems. The property doesn't use chlorofluorocarbon (CFC)-based refrigerants in heating, ventilating, and air-conditioning systems unless a third-party audit shows it's not economically feasible. The CFC-based refrigerants which are used should have a Global Warming Potential (GWP) ≤ 10. The property uses occupancy sensors on HVAC systems in back-of-house spaces, meeting rooms, and other low-traffic areas.
  *   `energyEfficientHeatingAndCoolingSystemsException` (*type:* `String.t`, *default:* `nil`) - Energy efficient heating and cooling systems exception.
  *   `energyEfficientLighting` (*type:* `boolean()`, *default:* `nil`) - Energy efficient lighting. At least 75% of the property's lighting is energy efficient, using lighting that is more than 45 lumens per watt – typically LED or CFL lightbulbs.
  *   `energyEfficientLightingException` (*type:* `String.t`, *default:* `nil`) - Energy efficient lighting exception.
  *   `energySavingThermostats` (*type:* `boolean()`, *default:* `nil`) - Energy saving thermostats. The property installed energy-saving thermostats throughout the building to conserve energy when rooms or areas are not in use. Energy-saving thermostats are devices that control heating/cooling in the building by learning temperature preferences and automatically adjusting to energy-saving temperatures as the default. The thermostats are automatically set to a temperature between 68-78 degrees F (20-26 °C), depending on seasonality. In the winter, set the thermostat to 68°F (20°C) when the room is occupied, lowering room temperature when unoccupied. In the summer, set the thermostat to 78°F (26°C) when the room is occupied.
  *   `energySavingThermostatsException` (*type:* `String.t`, *default:* `nil`) - Energy saving thermostats exception.
  *   `greenBuildingDesign` (*type:* `boolean()`, *default:* `nil`) - Output only. Green building design. True if the property has been awarded a relevant certification.
  *   `greenBuildingDesignException` (*type:* `String.t`, *default:* `nil`) - Output only. Green building design exception.
  *   `independentOrganizationAuditsEnergyUse` (*type:* `boolean()`, *default:* `nil`) - Independent organization audits energy use. The property conducts an energy audit at least every 5 years, the results of which are either verified by a third-party and/or published in external communications. An energy audit is a detailed assessment of the facility which provides recommendations to existing operations and procedures to improve energy efficiency, available incentives or rebates,and opportunities for improvements through renovations or upgrades. Examples of organizations that conduct credible third party audits include: Engie Impact, DNV GL (EU), Dexma, and local utility providers (they often provide energy and water audits).
  *   `independentOrganizationAuditsEnergyUseException` (*type:* `String.t`, *default:* `nil`) - Independent organization audits energy use exception.
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :carbonFreeEnergySources => boolean() | nil,
          :carbonFreeEnergySourcesException => String.t() | nil,
          :energyConservationProgram => boolean() | nil,
          :energyConservationProgramException => String.t() | nil,
          :energyEfficientHeatingAndCoolingSystems => boolean() | nil,
          :energyEfficientHeatingAndCoolingSystemsException => String.t() | nil,
          :energyEfficientLighting => boolean() | nil,
          :energyEfficientLightingException => String.t() | nil,
          :energySavingThermostats => boolean() | nil,
          :energySavingThermostatsException => String.t() | nil,
          :greenBuildingDesign => boolean() | nil,
          :greenBuildingDesignException => String.t() | nil,
          :independentOrganizationAuditsEnergyUse => boolean() | nil,
          :independentOrganizationAuditsEnergyUseException => String.t() | nil
        }

  field(:carbonFreeEnergySources)
  field(:carbonFreeEnergySourcesException)
  field(:energyConservationProgram)
  field(:energyConservationProgramException)
  field(:energyEfficientHeatingAndCoolingSystems)
  field(:energyEfficientHeatingAndCoolingSystemsException)
  field(:energyEfficientLighting)
  field(:energyEfficientLightingException)
  field(:energySavingThermostats)
  field(:energySavingThermostatsException)
  field(:greenBuildingDesign)
  field(:greenBuildingDesignException)
  field(:independentOrganizationAuditsEnergyUse)
  field(:independentOrganizationAuditsEnergyUseException)
end

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

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