# 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 BillAccountMeterResponse(Model):
    """BillAccountMeterResponse.

    :param bill_id: The bill identifier
    :type bill_id: int
    :param billing_period: The bill's billing period
    :type billing_period: int
    :param begin_date: The bill's begin date
    :type begin_date: datetime
    :param end_date: The bill's end date
    :type end_date: datetime
    :param days: The number of days the bill covers
    :type days: int
    :param account:
    :type account: ~energycap.sdk.models.AccountChild
    :param meter:
    :type meter: ~energycap.sdk.models.MeterChild
    :param global_use: Global use
    :type global_use: float
    :param global_use_per_day: Global use per day
    :type global_use_per_day: float
    :param global_use_unit:
    :type global_use_unit: ~energycap.sdk.models.UnitChild
    :param native_use: Native use
    :type native_use: float
    :param native_use_per_day: Native use per day
    :type native_use_per_day: float
    :param native_use_unit:
    :type native_use_unit: ~energycap.sdk.models.UnitChild
    :param native_demand: Native demand
    :type native_demand: float
    :param native_demand_unit:
    :type native_demand_unit: ~energycap.sdk.models.UnitChild
    :param native_billed_demand: Native billed demand
    :type native_billed_demand: float
    :param native_billed_demand_unit:
    :type native_billed_demand_unit: ~energycap.sdk.models.UnitChild
    :param native_actual_demand: Native actual demand
    :type native_actual_demand: float
    :param native_actual_demand_unit:
    :type native_actual_demand_unit: ~energycap.sdk.models.UnitChild
    :param common_use: Common use
    :type common_use: float
    :param common_use_per_day: Common use per day
    :type common_use_per_day: float
    :param common_use_unit:
    :type common_use_unit: ~energycap.sdk.models.UnitChild
    :param common_demand: Common demand
    :type common_demand: float
    :param common_demand_unit:
    :type common_demand_unit: ~energycap.sdk.models.UnitChild
    :param common_billed_demand: Common billed demand
    :type common_billed_demand: float
    :param common_billed_demand_unit:
    :type common_billed_demand_unit: ~energycap.sdk.models.UnitChild
    :param common_actual_demand: Common actual demand
    :type common_actual_demand: float
    :param common_actual_demand_unit:
    :type common_actual_demand_unit: ~energycap.sdk.models.UnitChild
    :param direct_cost: Direct cost
    :type direct_cost: float
    :param direct_cost_per_day: Direct cost per day
    :type direct_cost_per_day: float
    :param proportional_cost: Proportional cost
    :type proportional_cost: float
    :param proportional_cost_per_day: Proportional cost per day
    :type proportional_cost_per_day: float
    :param cost_unit:
    :type cost_unit: ~energycap.sdk.models.UnitChild
    """

    _attribute_map = {
        'bill_id': {'key': 'billId', 'type': 'int'},
        'billing_period': {'key': 'billingPeriod', 'type': 'int'},
        'begin_date': {'key': 'beginDate', 'type': 'iso-8601'},
        'end_date': {'key': 'endDate', 'type': 'iso-8601'},
        'days': {'key': 'days', 'type': 'int'},
        'account': {'key': 'account', 'type': 'AccountChild'},
        'meter': {'key': 'meter', 'type': 'MeterChild'},
        'global_use': {'key': 'globalUse', 'type': 'float'},
        'global_use_per_day': {'key': 'globalUsePerDay', 'type': 'float'},
        'global_use_unit': {'key': 'globalUseUnit', 'type': 'UnitChild'},
        'native_use': {'key': 'nativeUse', 'type': 'float'},
        'native_use_per_day': {'key': 'nativeUsePerDay', 'type': 'float'},
        'native_use_unit': {'key': 'nativeUseUnit', 'type': 'UnitChild'},
        'native_demand': {'key': 'nativeDemand', 'type': 'float'},
        'native_demand_unit': {'key': 'nativeDemandUnit', 'type': 'UnitChild'},
        'native_billed_demand': {'key': 'nativeBilledDemand', 'type': 'float'},
        'native_billed_demand_unit': {'key': 'nativeBilledDemandUnit', 'type': 'UnitChild'},
        'native_actual_demand': {'key': 'nativeActualDemand', 'type': 'float'},
        'native_actual_demand_unit': {'key': 'nativeActualDemandUnit', 'type': 'UnitChild'},
        'common_use': {'key': 'commonUse', 'type': 'float'},
        'common_use_per_day': {'key': 'commonUsePerDay', 'type': 'float'},
        'common_use_unit': {'key': 'commonUseUnit', 'type': 'UnitChild'},
        'common_demand': {'key': 'commonDemand', 'type': 'float'},
        'common_demand_unit': {'key': 'commonDemandUnit', 'type': 'UnitChild'},
        'common_billed_demand': {'key': 'commonBilledDemand', 'type': 'float'},
        'common_billed_demand_unit': {'key': 'commonBilledDemandUnit', 'type': 'UnitChild'},
        'common_actual_demand': {'key': 'commonActualDemand', 'type': 'float'},
        'common_actual_demand_unit': {'key': 'commonActualDemandUnit', 'type': 'UnitChild'},
        'direct_cost': {'key': 'directCost', 'type': 'float'},
        'direct_cost_per_day': {'key': 'directCostPerDay', 'type': 'float'},
        'proportional_cost': {'key': 'proportionalCost', 'type': 'float'},
        'proportional_cost_per_day': {'key': 'proportionalCostPerDay', 'type': 'float'},
        'cost_unit': {'key': 'costUnit', 'type': 'UnitChild'},
    }

    def __init__(self, bill_id=None, billing_period=None, begin_date=None, end_date=None, days=None, account=None, meter=None, global_use=None, global_use_per_day=None, global_use_unit=None, native_use=None, native_use_per_day=None, native_use_unit=None, native_demand=None, native_demand_unit=None, native_billed_demand=None, native_billed_demand_unit=None, native_actual_demand=None, native_actual_demand_unit=None, common_use=None, common_use_per_day=None, common_use_unit=None, common_demand=None, common_demand_unit=None, common_billed_demand=None, common_billed_demand_unit=None, common_actual_demand=None, common_actual_demand_unit=None, direct_cost=None, direct_cost_per_day=None, proportional_cost=None, proportional_cost_per_day=None, cost_unit=None):
        super(BillAccountMeterResponse, self).__init__()
        self.bill_id = bill_id
        self.billing_period = billing_period
        self.begin_date = begin_date
        self.end_date = end_date
        self.days = days
        self.account = account
        self.meter = meter
        self.global_use = global_use
        self.global_use_per_day = global_use_per_day
        self.global_use_unit = global_use_unit
        self.native_use = native_use
        self.native_use_per_day = native_use_per_day
        self.native_use_unit = native_use_unit
        self.native_demand = native_demand
        self.native_demand_unit = native_demand_unit
        self.native_billed_demand = native_billed_demand
        self.native_billed_demand_unit = native_billed_demand_unit
        self.native_actual_demand = native_actual_demand
        self.native_actual_demand_unit = native_actual_demand_unit
        self.common_use = common_use
        self.common_use_per_day = common_use_per_day
        self.common_use_unit = common_use_unit
        self.common_demand = common_demand
        self.common_demand_unit = common_demand_unit
        self.common_billed_demand = common_billed_demand
        self.common_billed_demand_unit = common_billed_demand_unit
        self.common_actual_demand = common_actual_demand
        self.common_actual_demand_unit = common_actual_demand_unit
        self.direct_cost = direct_cost
        self.direct_cost_per_day = direct_cost_per_day
        self.proportional_cost = proportional_cost
        self.proportional_cost_per_day = proportional_cost_per_day
        self.cost_unit = cost_unit
