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

    :param bill_id: The bill's bill id
    :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 total_cost: The bill's total cost
    :type total_cost: float
    :param total_cost_unit: The bill's total cost unit
    :type total_cost_unit: ~energycap.sdk.models.UnitChild
    :param void: The bill's void indicator
    :type void: bool
    :param accrual: The bill's accrual indicator
    :type accrual: bool
    :param bill_account_meters: The bill's account-meter summaries
    :type bill_account_meters:
     list[~energycap.sdk.models.BillAccountMeterChild]
    """

    _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'},
        'total_cost': {'key': 'totalCost', 'type': 'float'},
        'total_cost_unit': {'key': 'totalCostUnit', 'type': 'UnitChild'},
        'void': {'key': 'void', 'type': 'bool'},
        'accrual': {'key': 'accrual', 'type': 'bool'},
        'bill_account_meters': {'key': 'billAccountMeters', 'type': '[BillAccountMeterChild]'},
    }

    def __init__(self, bill_id=None, billing_period=None, begin_date=None, end_date=None, total_cost=None, total_cost_unit=None, void=None, accrual=None, bill_account_meters=None):
        super(BillHistoryResponse, self).__init__()
        self.bill_id = bill_id
        self.billing_period = billing_period
        self.begin_date = begin_date
        self.end_date = end_date
        self.total_cost = total_cost
        self.total_cost_unit = total_cost_unit
        self.void = void
        self.accrual = accrual
        self.bill_account_meters = bill_account_meters
