# 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 DynamicPercentageBillSplit(Model):
    """Defines details for a dynamic percentage split of use, cost, or both based
    on the use or cost values of the meters in the destination meter group.

    All required parameters must be populated in order to send to Azure.

    :param destination_meter_group_id: Required. ID of a meter group to
     receive the results of the split bill. <span
     class='property-internal'>Required</span>
    :type destination_meter_group_id: int
    :param source_value_to_split: Required. Value to distribute to the
     destination meters. <span class='property-internal'>Required</span> <span
     class='property-internal'>One of use, cost, useAndCost </span>
    :type source_value_to_split: str
    :param destination_share_value: Required. Value to define how dynamic
     percentages are calculated. <span
     class='property-internal'>Required</span> <span
     class='property-internal'>One of use, cost </span>
    :type destination_share_value: str
    """

    _validation = {
        'destination_meter_group_id': {'required': True},
        'source_value_to_split': {'required': True},
        'destination_share_value': {'required': True},
    }

    _attribute_map = {
        'destination_meter_group_id': {'key': 'destinationMeterGroupId', 'type': 'int'},
        'source_value_to_split': {'key': 'sourceValueToSplit', 'type': 'str'},
        'destination_share_value': {'key': 'destinationShareValue', 'type': 'str'},
    }

    def __init__(self, *, destination_meter_group_id: int, source_value_to_split: str, destination_share_value: str, **kwargs) -> None:
        super(DynamicPercentageBillSplit, self).__init__(**kwargs)
        self.destination_meter_group_id = destination_meter_group_id
        self.source_value_to_split = source_value_to_split
        self.destination_share_value = destination_share_value
