/*
 * 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.
 */
/*
 * This code was generated by https://github.com/googleapis/google-api-java-client-services/
 * Modify at your own risk.
 */

package com.google.api.services.mybusinesslodging.v1.model;

/**
 * Energy efficiency practices implemented at the hotel.
 *
 * <p> This is the Java data model class that specifies how to parse/serialize into the JSON that is
 * transmitted over HTTP when working with the My Business Lodging API. For a detailed explanation
 * see:
 * <a href="https://developers.google.com/api-client-library/java/google-http-java-client/json">https://developers.google.com/api-client-library/java/google-http-java-client/json</a>
 * </p>
 *
 * @author Google, Inc.
 */
@SuppressWarnings("javadoc")
public final class EnergyEfficiency extends com.google.api.client.json.GenericJson {

  /**
   * 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).
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean carbonFreeEnergySources;

  /**
   * Carbon free energy sources exception.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String carbonFreeEnergySourcesException;

  /**
   * 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.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean energyConservationProgram;

  /**
   * Energy conservation program exception.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String energyConservationProgramException;

  /**
   * 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.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean energyEfficientHeatingAndCoolingSystems;

  /**
   * Energy efficient heating and cooling systems exception.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String energyEfficientHeatingAndCoolingSystemsException;

  /**
   * 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.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean energyEfficientLighting;

  /**
   * Energy efficient lighting exception.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String energyEfficientLightingException;

  /**
   * 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.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean energySavingThermostats;

  /**
   * Energy saving thermostats exception.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String energySavingThermostatsException;

  /**
   * Output only. Green building design. True if BREEAM-* or LEED-* certified.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean greenBuildingDesign;

  /**
   * Output only. Green building design exception.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String greenBuildingDesignException;

  /**
   * 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).
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.Boolean independentOrganizationAuditsEnergyUse;

  /**
   * Independent organization audits energy use exception.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String independentOrganizationAuditsEnergyUseException;

  /**
   * 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).
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getCarbonFreeEnergySources() {
    return carbonFreeEnergySources;
  }

  /**
   * 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).
   * @param carbonFreeEnergySources carbonFreeEnergySources or {@code null} for none
   */
  public EnergyEfficiency setCarbonFreeEnergySources(java.lang.Boolean carbonFreeEnergySources) {
    this.carbonFreeEnergySources = carbonFreeEnergySources;
    return this;
  }

  /**
   * Carbon free energy sources exception.
   * @return value or {@code null} for none
   */
  public java.lang.String getCarbonFreeEnergySourcesException() {
    return carbonFreeEnergySourcesException;
  }

  /**
   * Carbon free energy sources exception.
   * @param carbonFreeEnergySourcesException carbonFreeEnergySourcesException or {@code null} for none
   */
  public EnergyEfficiency setCarbonFreeEnergySourcesException(java.lang.String carbonFreeEnergySourcesException) {
    this.carbonFreeEnergySourcesException = carbonFreeEnergySourcesException;
    return this;
  }

  /**
   * 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.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getEnergyConservationProgram() {
    return energyConservationProgram;
  }

  /**
   * 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.
   * @param energyConservationProgram energyConservationProgram or {@code null} for none
   */
  public EnergyEfficiency setEnergyConservationProgram(java.lang.Boolean energyConservationProgram) {
    this.energyConservationProgram = energyConservationProgram;
    return this;
  }

  /**
   * Energy conservation program exception.
   * @return value or {@code null} for none
   */
  public java.lang.String getEnergyConservationProgramException() {
    return energyConservationProgramException;
  }

  /**
   * Energy conservation program exception.
   * @param energyConservationProgramException energyConservationProgramException or {@code null} for none
   */
  public EnergyEfficiency setEnergyConservationProgramException(java.lang.String energyConservationProgramException) {
    this.energyConservationProgramException = energyConservationProgramException;
    return this;
  }

  /**
   * 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.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getEnergyEfficientHeatingAndCoolingSystems() {
    return energyEfficientHeatingAndCoolingSystems;
  }

  /**
   * 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.
   * @param energyEfficientHeatingAndCoolingSystems energyEfficientHeatingAndCoolingSystems or {@code null} for none
   */
  public EnergyEfficiency setEnergyEfficientHeatingAndCoolingSystems(java.lang.Boolean energyEfficientHeatingAndCoolingSystems) {
    this.energyEfficientHeatingAndCoolingSystems = energyEfficientHeatingAndCoolingSystems;
    return this;
  }

  /**
   * Energy efficient heating and cooling systems exception.
   * @return value or {@code null} for none
   */
  public java.lang.String getEnergyEfficientHeatingAndCoolingSystemsException() {
    return energyEfficientHeatingAndCoolingSystemsException;
  }

  /**
   * Energy efficient heating and cooling systems exception.
   * @param energyEfficientHeatingAndCoolingSystemsException energyEfficientHeatingAndCoolingSystemsException or {@code null} for none
   */
  public EnergyEfficiency setEnergyEfficientHeatingAndCoolingSystemsException(java.lang.String energyEfficientHeatingAndCoolingSystemsException) {
    this.energyEfficientHeatingAndCoolingSystemsException = energyEfficientHeatingAndCoolingSystemsException;
    return this;
  }

  /**
   * 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.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getEnergyEfficientLighting() {
    return energyEfficientLighting;
  }

  /**
   * 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.
   * @param energyEfficientLighting energyEfficientLighting or {@code null} for none
   */
  public EnergyEfficiency setEnergyEfficientLighting(java.lang.Boolean energyEfficientLighting) {
    this.energyEfficientLighting = energyEfficientLighting;
    return this;
  }

  /**
   * Energy efficient lighting exception.
   * @return value or {@code null} for none
   */
  public java.lang.String getEnergyEfficientLightingException() {
    return energyEfficientLightingException;
  }

  /**
   * Energy efficient lighting exception.
   * @param energyEfficientLightingException energyEfficientLightingException or {@code null} for none
   */
  public EnergyEfficiency setEnergyEfficientLightingException(java.lang.String energyEfficientLightingException) {
    this.energyEfficientLightingException = energyEfficientLightingException;
    return this;
  }

  /**
   * 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.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getEnergySavingThermostats() {
    return energySavingThermostats;
  }

  /**
   * 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.
   * @param energySavingThermostats energySavingThermostats or {@code null} for none
   */
  public EnergyEfficiency setEnergySavingThermostats(java.lang.Boolean energySavingThermostats) {
    this.energySavingThermostats = energySavingThermostats;
    return this;
  }

  /**
   * Energy saving thermostats exception.
   * @return value or {@code null} for none
   */
  public java.lang.String getEnergySavingThermostatsException() {
    return energySavingThermostatsException;
  }

  /**
   * Energy saving thermostats exception.
   * @param energySavingThermostatsException energySavingThermostatsException or {@code null} for none
   */
  public EnergyEfficiency setEnergySavingThermostatsException(java.lang.String energySavingThermostatsException) {
    this.energySavingThermostatsException = energySavingThermostatsException;
    return this;
  }

  /**
   * Output only. Green building design. True if BREEAM-* or LEED-* certified.
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getGreenBuildingDesign() {
    return greenBuildingDesign;
  }

  /**
   * Output only. Green building design. True if BREEAM-* or LEED-* certified.
   * @param greenBuildingDesign greenBuildingDesign or {@code null} for none
   */
  public EnergyEfficiency setGreenBuildingDesign(java.lang.Boolean greenBuildingDesign) {
    this.greenBuildingDesign = greenBuildingDesign;
    return this;
  }

  /**
   * Output only. Green building design exception.
   * @return value or {@code null} for none
   */
  public java.lang.String getGreenBuildingDesignException() {
    return greenBuildingDesignException;
  }

  /**
   * Output only. Green building design exception.
   * @param greenBuildingDesignException greenBuildingDesignException or {@code null} for none
   */
  public EnergyEfficiency setGreenBuildingDesignException(java.lang.String greenBuildingDesignException) {
    this.greenBuildingDesignException = greenBuildingDesignException;
    return this;
  }

  /**
   * 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).
   * @return value or {@code null} for none
   */
  public java.lang.Boolean getIndependentOrganizationAuditsEnergyUse() {
    return independentOrganizationAuditsEnergyUse;
  }

  /**
   * 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).
   * @param independentOrganizationAuditsEnergyUse independentOrganizationAuditsEnergyUse or {@code null} for none
   */
  public EnergyEfficiency setIndependentOrganizationAuditsEnergyUse(java.lang.Boolean independentOrganizationAuditsEnergyUse) {
    this.independentOrganizationAuditsEnergyUse = independentOrganizationAuditsEnergyUse;
    return this;
  }

  /**
   * Independent organization audits energy use exception.
   * @return value or {@code null} for none
   */
  public java.lang.String getIndependentOrganizationAuditsEnergyUseException() {
    return independentOrganizationAuditsEnergyUseException;
  }

  /**
   * Independent organization audits energy use exception.
   * @param independentOrganizationAuditsEnergyUseException independentOrganizationAuditsEnergyUseException or {@code null} for none
   */
  public EnergyEfficiency setIndependentOrganizationAuditsEnergyUseException(java.lang.String independentOrganizationAuditsEnergyUseException) {
    this.independentOrganizationAuditsEnergyUseException = independentOrganizationAuditsEnergyUseException;
    return this;
  }

  @Override
  public EnergyEfficiency set(String fieldName, Object value) {
    return (EnergyEfficiency) super.set(fieldName, value);
  }

  @Override
  public EnergyEfficiency clone() {
    return (EnergyEfficiency) super.clone();
  }

}
