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

    :param match_type: The MatchType
     values -
     Account - we found a match on account code, account info or previous
     account code
     Meter - we found a match on meter code, meter info or serial number
     AccountAddress - we found a match on account's address - line1, line2,
     city or state
     MeterAddress - we found a match on meter's address - line1, line2, city or
     state
    :type match_type: str
    :param account_id: The Account identifier
    :type account_id: int
    :param account_code: The Account code
    :type account_code: str
    :param account_info: The Account info
    :type account_info: str
    :param previous_account_code: The Previous Account code
    :type previous_account_code: str
    :param active: Indicates whether the Account is active or inactive
    :type active: bool
    :param account_type:
    :type account_type: ~energycap.sdk.models.AccountTypeChild
    :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 account_address:
    :type account_address: ~energycap.sdk.models.AddressChild
    :param meters: The Account's vendor
    :type meters: list[~energycap.sdk.models.MeterChildSearch]
    """

    _attribute_map = {
        'match_type': {'key': 'matchType', 'type': 'str'},
        'account_id': {'key': 'accountId', 'type': 'int'},
        'account_code': {'key': 'accountCode', 'type': 'str'},
        'account_info': {'key': 'accountInfo', 'type': 'str'},
        'previous_account_code': {'key': 'previousAccountCode', 'type': 'str'},
        'active': {'key': 'active', 'type': 'bool'},
        'account_type': {'key': 'accountType', 'type': 'AccountTypeChild'},
        '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'},
        'account_address': {'key': 'accountAddress', 'type': 'AddressChild'},
        'meters': {'key': 'meters', 'type': '[MeterChildSearch]'},
    }

    def __init__(self, *, match_type: str=None, account_id: int=None, account_code: str=None, account_info: str=None, previous_account_code: str=None, active: bool=None, account_type=None, has_calculated_meter: bool=None, has_split_parent_meter: bool=None, has_split_child_meter: bool=None, vendor=None, account_address=None, meters=None, **kwargs) -> None:
        super(SearchAccountMeterBillEntry, self).__init__(**kwargs)
        self.match_type = match_type
        self.account_id = account_id
        self.account_code = account_code
        self.account_info = account_info
        self.previous_account_code = previous_account_code
        self.active = active
        self.account_type = account_type
        self.has_calculated_meter = has_calculated_meter
        self.has_split_parent_meter = has_split_parent_meter
        self.has_split_child_meter = has_split_child_meter
        self.vendor = vendor
        self.account_address = account_address
        self.meters = meters
