# 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 DistributionVersionResponse(Model):
    """DistributionVersionResponse.

    :param version_id: Identifier for the version
    :type version_id: int
    :param version_info: Name given to a version
    :type version_info: str
    :param chargeback_type: The chargeback type.  Either "Split" or
     "Calculation"
    :type chargeback_type: str
    :param begin_period: Begin period for the version
    :type begin_period: int
    :param end_period: End period for the version
     null value means continuing indefinitely
    :type end_period: int
    :param account:
    :type account: ~energycap.sdk.models.AccountChildWithType
    :param meter:
    :type meter: ~energycap.sdk.models.MeterChild
    :param workflow:
    :type workflow: ~energycap.sdk.models.ChargebackWorkflowStepChild
    :param has_bills: Do any bills exist that were created by this version?
     A version cannot be deleted if there are any existing bills that were
     created using this version
    :type has_bills: bool
    """

    _attribute_map = {
        'version_id': {'key': 'versionId', 'type': 'int'},
        'version_info': {'key': 'versionInfo', 'type': 'str'},
        'chargeback_type': {'key': 'chargebackType', 'type': 'str'},
        'begin_period': {'key': 'beginPeriod', 'type': 'int'},
        'end_period': {'key': 'endPeriod', 'type': 'int'},
        'account': {'key': 'account', 'type': 'AccountChildWithType'},
        'meter': {'key': 'meter', 'type': 'MeterChild'},
        'workflow': {'key': 'workflow', 'type': 'ChargebackWorkflowStepChild'},
        'has_bills': {'key': 'hasBills', 'type': 'bool'},
    }

    def __init__(self, version_id=None, version_info=None, chargeback_type=None, begin_period=None, end_period=None, account=None, meter=None, workflow=None, has_bills=None):
        super(DistributionVersionResponse, self).__init__()
        self.version_id = version_id
        self.version_info = version_info
        self.chargeback_type = chargeback_type
        self.begin_period = begin_period
        self.end_period = end_period
        self.account = account
        self.meter = meter
        self.workflow = workflow
        self.has_bills = has_bills
