# 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 CalculatedBillDetailsResponse(Model):
    """Response object containing all the details related to calculated bill setup
    for a meter. Includes use, cost, meter line items, and account line items.

    :param version:
    :type version: ~energycap.sdk.models.DistributionVersionResponse
    :param use:
    :type use: ~energycap.sdk.models.CalculatedBillUseResponse
    :param cost:
    :type cost: ~energycap.sdk.models.CalculatedBillCostResponse
    :param demand:
    :type demand: ~energycap.sdk.models.CalculatedBillDemandResponse
    :param meter_line_items: Additional meter bodylines to be added to the
     bill
     The line items are returned in the correct display order
    :type meter_line_items:
     list[~energycap.sdk.models.GenericBodylineResponse]
    :param account_line_items: Additional account bodylines to be added to the
     bill
     The line items are returned in the correct display order
    :type account_line_items:
     list[~energycap.sdk.models.GenericBodylineResponse]
    """

    _attribute_map = {
        'version': {'key': 'version', 'type': 'DistributionVersionResponse'},
        'use': {'key': 'use', 'type': 'CalculatedBillUseResponse'},
        'cost': {'key': 'cost', 'type': 'CalculatedBillCostResponse'},
        'demand': {'key': 'demand', 'type': 'CalculatedBillDemandResponse'},
        'meter_line_items': {'key': 'meterLineItems', 'type': '[GenericBodylineResponse]'},
        'account_line_items': {'key': 'accountLineItems', 'type': '[GenericBodylineResponse]'},
    }

    def __init__(self, version=None, use=None, cost=None, demand=None, meter_line_items=None, account_line_items=None):
        super(CalculatedBillDetailsResponse, self).__init__()
        self.version = version
        self.use = use
        self.cost = cost
        self.demand = demand
        self.meter_line_items = meter_line_items
        self.account_line_items = account_line_items
