# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------

from msrest.serialization import Model


class BaselineProcessorResponse(Model):
    """BaselineProcessorResponse.

    :param include_in_cap: Indicates if the meter will be included in savings
     calculations
    :type include_in_cap: bool
    :param adjust_area: Indicates if floor area adjustments should be made
    :type adjust_area: bool
    :param adjusted_cost_type:
    :type adjusted_cost_type: ~energycap.sdk.models.AdjustedCostTypeResponse
    :param adjust_winter: Indicates if winter weather adjustments should be
     made
    :type adjust_winter: bool
    :param adjust_summer: Indicates if summer weather adjustments should be
     made
    :type adjust_summer: bool
    :param baseline_months: Number of months in the baseline
     Setting this to anything other than 12 will turn off weather adjustments
     irregardless of the settings in adjustWinter and adjustSummer
    :type baseline_months: int
    :param baseline_start_date: Baseline start date
    :type baseline_start_date: datetime
    :param savings_start_date: Savings Period start date
    :type savings_start_date: datetime
    :param use_extended_weather: Indicates if extended weather should be used.
     Extended weather uses additional months prior to the baseline start date
     to determine weather sensitivity.
    :type use_extended_weather: bool
    :param extended_weather_start_date: Start Date of the extended weather.
     This should be 1, 2 or 3 years prior to the baseline start date.
     Extended weather uses additional months prior to the baseline start date
     to determine weather sensitivity.
    :type extended_weather_start_date: datetime
    :param cooling_temp: Cooling balance point
    :type cooling_temp: int
    :param cooling_intercept: Cooling intercept
    :type cooling_intercept: float
    :param cooling_max_degree_days: Cooling max Degree Days
    :type cooling_max_degree_days: float
    :param cooling_max_use: Cooling max use
    :type cooling_max_use: float
    :param cooling_r2: Cooling R2
    :type cooling_r2: float
    :param cooling_min_r2: Cooling minimum R2
    :type cooling_min_r2: float
    :param cooling_calculated_r2: Cooling calculated R2
    :type cooling_calculated_r2: float
    :param cooling_slope: Cooling slope
    :type cooling_slope: float
    :param cooling_std_dev: Cooling standard deviation
    :type cooling_std_dev: float
    :param heating_temp: Heating balance point
    :type heating_temp: int
    :param heating_intercept: Heating intercept
    :type heating_intercept: float
    :param heating_max_degree_days: Heating maximum Degree Days
    :type heating_max_degree_days: float
    :param heating_max_use: Heating maximum use
    :type heating_max_use: float
    :param heating_r2: Heating R2
    :type heating_r2: float
    :param heating_min_r2: Heating minimum R2
    :type heating_min_r2: float
    :param heating_calculated_r2: Heating calculated R2
    :type heating_calculated_r2: float
    :param heating_slope: Heating slope
    :type heating_slope: float
    :param heating_std_dev: Heating standard deviation
    :type heating_std_dev: float
    :param native_use_unit:
    :type native_use_unit: ~energycap.sdk.models.UnitChild
    :param baseline_bills: Indicates whether or not each bill in the baseline
     should be included in the baseline regression
    :type baseline_bills:
     list[~energycap.sdk.models.BaselineProcessorResponseBaselineBill]
    """

    _attribute_map = {
        'include_in_cap': {'key': 'includeInCAP', 'type': 'bool'},
        'adjust_area': {'key': 'adjustArea', 'type': 'bool'},
        'adjusted_cost_type': {'key': 'adjustedCostType', 'type': 'AdjustedCostTypeResponse'},
        'adjust_winter': {'key': 'adjustWinter', 'type': 'bool'},
        'adjust_summer': {'key': 'adjustSummer', 'type': 'bool'},
        'baseline_months': {'key': 'baselineMonths', 'type': 'int'},
        'baseline_start_date': {'key': 'baselineStartDate', 'type': 'iso-8601'},
        'savings_start_date': {'key': 'savingsStartDate', 'type': 'iso-8601'},
        'use_extended_weather': {'key': 'useExtendedWeather', 'type': 'bool'},
        'extended_weather_start_date': {'key': 'extendedWeatherStartDate', 'type': 'iso-8601'},
        'cooling_temp': {'key': 'coolingTemp', 'type': 'int'},
        'cooling_intercept': {'key': 'coolingIntercept', 'type': 'float'},
        'cooling_max_degree_days': {'key': 'coolingMaxDegreeDays', 'type': 'float'},
        'cooling_max_use': {'key': 'coolingMaxUse', 'type': 'float'},
        'cooling_r2': {'key': 'coolingR2', 'type': 'float'},
        'cooling_min_r2': {'key': 'coolingMinR2', 'type': 'float'},
        'cooling_calculated_r2': {'key': 'coolingCalculatedR2', 'type': 'float'},
        'cooling_slope': {'key': 'coolingSlope', 'type': 'float'},
        'cooling_std_dev': {'key': 'coolingStdDev', 'type': 'float'},
        'heating_temp': {'key': 'heatingTemp', 'type': 'int'},
        'heating_intercept': {'key': 'heatingIntercept', 'type': 'float'},
        'heating_max_degree_days': {'key': 'heatingMaxDegreeDays', 'type': 'float'},
        'heating_max_use': {'key': 'heatingMaxUse', 'type': 'float'},
        'heating_r2': {'key': 'heatingR2', 'type': 'float'},
        'heating_min_r2': {'key': 'heatingMinR2', 'type': 'float'},
        'heating_calculated_r2': {'key': 'heatingCalculatedR2', 'type': 'float'},
        'heating_slope': {'key': 'heatingSlope', 'type': 'float'},
        'heating_std_dev': {'key': 'heatingStdDev', 'type': 'float'},
        'native_use_unit': {'key': 'nativeUseUnit', 'type': 'UnitChild'},
        'baseline_bills': {'key': 'baselineBills', 'type': '[BaselineProcessorResponseBaselineBill]'},
    }

    def __init__(self, **kwargs):
        super(BaselineProcessorResponse, self).__init__(**kwargs)
        self.include_in_cap = kwargs.get('include_in_cap', None)
        self.adjust_area = kwargs.get('adjust_area', None)
        self.adjusted_cost_type = kwargs.get('adjusted_cost_type', None)
        self.adjust_winter = kwargs.get('adjust_winter', None)
        self.adjust_summer = kwargs.get('adjust_summer', None)
        self.baseline_months = kwargs.get('baseline_months', None)
        self.baseline_start_date = kwargs.get('baseline_start_date', None)
        self.savings_start_date = kwargs.get('savings_start_date', None)
        self.use_extended_weather = kwargs.get('use_extended_weather', None)
        self.extended_weather_start_date = kwargs.get('extended_weather_start_date', None)
        self.cooling_temp = kwargs.get('cooling_temp', None)
        self.cooling_intercept = kwargs.get('cooling_intercept', None)
        self.cooling_max_degree_days = kwargs.get('cooling_max_degree_days', None)
        self.cooling_max_use = kwargs.get('cooling_max_use', None)
        self.cooling_r2 = kwargs.get('cooling_r2', None)
        self.cooling_min_r2 = kwargs.get('cooling_min_r2', None)
        self.cooling_calculated_r2 = kwargs.get('cooling_calculated_r2', None)
        self.cooling_slope = kwargs.get('cooling_slope', None)
        self.cooling_std_dev = kwargs.get('cooling_std_dev', None)
        self.heating_temp = kwargs.get('heating_temp', None)
        self.heating_intercept = kwargs.get('heating_intercept', None)
        self.heating_max_degree_days = kwargs.get('heating_max_degree_days', None)
        self.heating_max_use = kwargs.get('heating_max_use', None)
        self.heating_r2 = kwargs.get('heating_r2', None)
        self.heating_min_r2 = kwargs.get('heating_min_r2', None)
        self.heating_calculated_r2 = kwargs.get('heating_calculated_r2', None)
        self.heating_slope = kwargs.get('heating_slope', None)
        self.heating_std_dev = kwargs.get('heating_std_dev', None)
        self.native_use_unit = kwargs.get('native_use_unit', None)
        self.baseline_bills = kwargs.get('baseline_bills', None)
