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

    :param account_meter_id: The MeterAccount meter identifier
    :type account_meter_id: int
    :param account_id: The MeterAccount identifier for this MeterAccount meter
    :type account_id: int
    :param account_code: The code of the MeterAccount for this MeterAccount
     meter
    :type account_code: str
    :param account_info: The info of the MeterAccount for this MeterAccount
     meter
    :type account_info: str
    :param active: Indicates whether the Account is active or inactive
    :type active: bool
    :param has_calculated_meter: Indicates whether the Account has a child
     calculated meter
    :type has_calculated_meter: bool
    :param has_split_parent_meter: Indicates whether the Account is a
     recipient of a split
    :type has_split_parent_meter: bool
    :param has_split_child_meter: Indicates whether the Account has a child
     split meter
    :type has_split_child_meter: bool
    :param vendor:
    :type vendor: ~energycap.sdk.models.VendorChild
    :param meter_general_ledger:
    :type meter_general_ledger: ~energycap.sdk.models.GeneralLedgerChild
    :param account_general_ledger:
    :type account_general_ledger: ~energycap.sdk.models.GeneralLedgerChild
    :param vendor_type:
    :type vendor_type: ~energycap.sdk.models.VendorTypeChild
    :param start_date: The beginning date and time for this MeterAccount meter
     relationship
    :type start_date: datetime
    :param end_date: The ending date and time for this MeterAccount meter
     relationship
    :type end_date: datetime
    :param data_access_release_id: The data access release identifier for this
     MeterAccount meter relationship, null if there is no release
    :type data_access_release_id: int
    """

    _attribute_map = {
        'account_meter_id': {'key': 'accountMeterId', 'type': 'int'},
        'account_id': {'key': 'accountId', 'type': 'int'},
        'account_code': {'key': 'accountCode', 'type': 'str'},
        'account_info': {'key': 'accountInfo', 'type': 'str'},
        'active': {'key': 'active', 'type': 'bool'},
        'has_calculated_meter': {'key': 'hasCalculatedMeter', 'type': 'bool'},
        'has_split_parent_meter': {'key': 'hasSplitParentMeter', 'type': 'bool'},
        'has_split_child_meter': {'key': 'hasSplitChildMeter', 'type': 'bool'},
        'vendor': {'key': 'vendor', 'type': 'VendorChild'},
        'meter_general_ledger': {'key': 'meterGeneralLedger', 'type': 'GeneralLedgerChild'},
        'account_general_ledger': {'key': 'accountGeneralLedger', 'type': 'GeneralLedgerChild'},
        'vendor_type': {'key': 'vendorType', 'type': 'VendorTypeChild'},
        'start_date': {'key': 'startDate', 'type': 'iso-8601'},
        'end_date': {'key': 'endDate', 'type': 'iso-8601'},
        'data_access_release_id': {'key': 'dataAccessReleaseId', 'type': 'int'},
    }

    def __init__(self, **kwargs):
        super(MeterAccountChild, self).__init__(**kwargs)
        self.account_meter_id = kwargs.get('account_meter_id', None)
        self.account_id = kwargs.get('account_id', None)
        self.account_code = kwargs.get('account_code', None)
        self.account_info = kwargs.get('account_info', None)
        self.active = kwargs.get('active', None)
        self.has_calculated_meter = kwargs.get('has_calculated_meter', None)
        self.has_split_parent_meter = kwargs.get('has_split_parent_meter', None)
        self.has_split_child_meter = kwargs.get('has_split_child_meter', None)
        self.vendor = kwargs.get('vendor', None)
        self.meter_general_ledger = kwargs.get('meter_general_ledger', None)
        self.account_general_ledger = kwargs.get('account_general_ledger', None)
        self.vendor_type = kwargs.get('vendor_type', None)
        self.start_date = kwargs.get('start_date', None)
        self.end_date = kwargs.get('end_date', None)
        self.data_access_release_id = kwargs.get('data_access_release_id', None)
