# 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 CalculatedBillCostResponse(Model):
    """Definition of how a calculated bill will get its cost.

    :param rate_schedule:
    :type rate_schedule: ~energycap.sdk.models.RateChildResponse
    :param fixed_unit_cost:
    :type fixed_unit_cost: ~energycap.sdk.models.FixedAmountResponse
    :param unit_cost_from_meter:
    :type unit_cost_from_meter: ~energycap.sdk.models.MeterChild
    :param fixed_amount: Use a fixed amount for bill cost
    :type fixed_amount: float
    :param copy_cost_from_meter:
    :type copy_cost_from_meter: ~energycap.sdk.models.CopyFromMeterResponse
    :param cost_calculation:
    :type cost_calculation: ~energycap.sdk.models.CalculationResponse
    :param calendarized_cost_calculation:
    :type calendarized_cost_calculation:
     ~energycap.sdk.models.CalendarizedCalculationResponse
    """

    _attribute_map = {
        'rate_schedule': {'key': 'rateSchedule', 'type': 'RateChildResponse'},
        'fixed_unit_cost': {'key': 'fixedUnitCost', 'type': 'FixedAmountResponse'},
        'unit_cost_from_meter': {'key': 'unitCostFromMeter', 'type': 'MeterChild'},
        'fixed_amount': {'key': 'fixedAmount', 'type': 'float'},
        'copy_cost_from_meter': {'key': 'copyCostFromMeter', 'type': 'CopyFromMeterResponse'},
        'cost_calculation': {'key': 'costCalculation', 'type': 'CalculationResponse'},
        'calendarized_cost_calculation': {'key': 'calendarizedCostCalculation', 'type': 'CalendarizedCalculationResponse'},
    }

    def __init__(self, **kwargs):
        super(CalculatedBillCostResponse, self).__init__(**kwargs)
        self.rate_schedule = kwargs.get('rate_schedule', None)
        self.fixed_unit_cost = kwargs.get('fixed_unit_cost', None)
        self.unit_cost_from_meter = kwargs.get('unit_cost_from_meter', None)
        self.fixed_amount = kwargs.get('fixed_amount', None)
        self.copy_cost_from_meter = kwargs.get('copy_cost_from_meter', None)
        self.cost_calculation = kwargs.get('cost_calculation', None)
        self.calendarized_cost_calculation = kwargs.get('calendarized_cost_calculation', None)
