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

    :param readings_from_channel: Use monthly channel data readings to
     calculate bill use
    :type readings_from_channel:
     ~energycap.sdk.models.ChannelChildWithObservationType
    :param fixed_amount: Use a fixed amount for bill use
    :type fixed_amount: ~energycap.sdk.models.FixedAmountResponse
    :param copy_use_from_meter: Copy aggregated use from another meter
    :type copy_use_from_meter: ~energycap.sdk.models.CopyFromMeterResponse
    :param use_calculation: Add and subtract use from meters and meter groups
    :type use_calculation: ~energycap.sdk.models.CalculationResponse
    """

    _attribute_map = {
        'readings_from_channel': {'key': 'readingsFromChannel', 'type': 'ChannelChildWithObservationType'},
        'fixed_amount': {'key': 'fixedAmount', 'type': 'FixedAmountResponse'},
        'copy_use_from_meter': {'key': 'copyUseFromMeter', 'type': 'CopyFromMeterResponse'},
        'use_calculation': {'key': 'useCalculation', 'type': 'CalculationResponse'},
    }

    def __init__(self, readings_from_channel=None, fixed_amount=None, copy_use_from_meter=None, use_calculation=None):
        super(CalculatedBillUseResponse, self).__init__()
        self.readings_from_channel = readings_from_channel
        self.fixed_amount = fixed_amount
        self.copy_use_from_meter = copy_use_from_meter
        self.use_calculation = use_calculation
