# 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 CalculatedBillCostRequest(Model):
    """Defines how use is calculated for a calculated bill distribution.

    :param use_current_meters_rate_schedule: Apply the meter's current rate
     when calculating bill cost
     "true" is the only valid value for this property <span
     class='property-internal'>One of True </span> <span
     class='property-internal'>Required (defined)</span>
    :type use_current_meters_rate_schedule: bool
    :param fixed_unit_cost:
    :type fixed_unit_cost: ~energycap.sdk.models.FixedUnitCostRequest
    :param unit_cost_meter_id: MeterId from where to get the unit cost <span
     class='property-internal'>Required (defined)</span>
    :type unit_cost_meter_id: int
    :param fixed_amount: Use a fixed amount for bill cost <span
     class='property-info'>Max scale of 2</span> <span
     class='property-info'>NULL Valid</span> <span
     class='property-internal'>Required (defined)</span>
    :type fixed_amount: float
    :param copy_cost_from_meter:
    :type copy_cost_from_meter: ~energycap.sdk.models.CopyMeterRequest
    :param cost_calculation:
    :type cost_calculation: ~energycap.sdk.models.CalculationRequest
    :param calendarized_cost_calculation:
    :type calendarized_cost_calculation:
     ~energycap.sdk.models.CalendarizedCalculationRequest
    """

    _attribute_map = {
        'use_current_meters_rate_schedule': {'key': 'useCurrentMetersRateSchedule', 'type': 'bool'},
        'fixed_unit_cost': {'key': 'fixedUnitCost', 'type': 'FixedUnitCostRequest'},
        'unit_cost_meter_id': {'key': 'unitCostMeterId', 'type': 'int'},
        'fixed_amount': {'key': 'fixedAmount', 'type': 'float'},
        'copy_cost_from_meter': {'key': 'copyCostFromMeter', 'type': 'CopyMeterRequest'},
        'cost_calculation': {'key': 'costCalculation', 'type': 'CalculationRequest'},
        'calendarized_cost_calculation': {'key': 'calendarizedCostCalculation', 'type': 'CalendarizedCalculationRequest'},
    }

    def __init__(self, *, use_current_meters_rate_schedule: bool=None, fixed_unit_cost=None, unit_cost_meter_id: int=None, fixed_amount: float=None, copy_cost_from_meter=None, cost_calculation=None, calendarized_cost_calculation=None, **kwargs) -> None:
        super(CalculatedBillCostRequest, self).__init__(**kwargs)
        self.use_current_meters_rate_schedule = use_current_meters_rate_schedule
        self.fixed_unit_cost = fixed_unit_cost
        self.unit_cost_meter_id = unit_cost_meter_id
        self.fixed_amount = fixed_amount
        self.copy_cost_from_meter = copy_cost_from_meter
        self.cost_calculation = cost_calculation
        self.calendarized_cost_calculation = calendarized_cost_calculation
