# 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 MeterChildSearch(Model):
    """Class derived from MeterChildDTO - has Meter Address and Serial Number
    This class is used by the Bill Entry Account Searcher.

    :param meter_address:
    :type meter_address: ~energycap.sdk.models.AddressChild
    :param serial_number: The meter's current serial number
    :type serial_number: str
    :param previous_serial_number: The meter's previous serial number
    :type previous_serial_number: str
    :param meter_id: The meter identifier
    :type meter_id: int
    :param meter_code: The meter code
    :type meter_code: str
    :param meter_info: The meter info
    :type meter_info: str
    :param meter_type:
    :type meter_type: ~energycap.sdk.models.MeterTypeChild
    :param commodity:
    :type commodity: ~energycap.sdk.models.CommodityChild
    :param active: Indicates whether the Meter is Active
    :type active: bool
    :param is_calculated_meter: Indicates whether the Meter is a calculated
     meter
    :type is_calculated_meter: bool
    :param is_split_parent_meter: Indicates whether the Meter is a parent of a
     split
    :type is_split_parent_meter: bool
    :param is_split_child_meter: Indicates whether the Meter is a child of a
     split
    :type is_split_child_meter: bool
    """

    _attribute_map = {
        'meter_address': {'key': 'meterAddress', 'type': 'AddressChild'},
        'serial_number': {'key': 'serialNumber', 'type': 'str'},
        'previous_serial_number': {'key': 'previousSerialNumber', 'type': 'str'},
        'meter_id': {'key': 'meterId', 'type': 'int'},
        'meter_code': {'key': 'meterCode', 'type': 'str'},
        'meter_info': {'key': 'meterInfo', 'type': 'str'},
        'meter_type': {'key': 'meterType', 'type': 'MeterTypeChild'},
        'commodity': {'key': 'commodity', 'type': 'CommodityChild'},
        'active': {'key': 'active', 'type': 'bool'},
        'is_calculated_meter': {'key': 'isCalculatedMeter', 'type': 'bool'},
        'is_split_parent_meter': {'key': 'isSplitParentMeter', 'type': 'bool'},
        'is_split_child_meter': {'key': 'isSplitChildMeter', 'type': 'bool'},
    }

    def __init__(self, *, meter_address=None, serial_number: str=None, previous_serial_number: str=None, meter_id: int=None, meter_code: str=None, meter_info: str=None, meter_type=None, commodity=None, active: bool=None, is_calculated_meter: bool=None, is_split_parent_meter: bool=None, is_split_child_meter: bool=None, **kwargs) -> None:
        super(MeterChildSearch, self).__init__(**kwargs)
        self.meter_address = meter_address
        self.serial_number = serial_number
        self.previous_serial_number = previous_serial_number
        self.meter_id = meter_id
        self.meter_code = meter_code
        self.meter_info = meter_info
        self.meter_type = meter_type
        self.commodity = commodity
        self.active = active
        self.is_calculated_meter = is_calculated_meter
        self.is_split_parent_meter = is_split_parent_meter
        self.is_split_child_meter = is_split_child_meter
