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

    :param channel_id: The channel identifier
    :type channel_id: int
    :param channel_code: The channel code
    :type channel_code: str
    :param meter:
    :type meter: ~energycap.sdk.models.MeterChild
    :param commodity:
    :type commodity: ~energycap.sdk.models.CommodityChild
    :param observation_type:
    :type observation_type: ~energycap.sdk.models.ObservationTypeChild
    :param observation_method:
    :type observation_method: ~energycap.sdk.models.ObservationMethod
    :param observation_rule:
    :type observation_rule: ~energycap.sdk.models.ObservationRule
    :param unit:
    :type unit: ~energycap.sdk.models.UnitChild
    :param interval_minutes: The interval of the channel. The interval is
     measured in minutes
    :type interval_minutes: int
    :param hidden: Indicates if the channel is hidden
    :type hidden: bool
    :param total_sum: The total sum
    :type total_sum: bool
    :param properties:
    :type properties: ~energycap.sdk.models.DeviceChannelChild
    :param has_readings: Indicates if the channel has readings
    :type has_readings: bool
    :param is_used_on_distribution: Indicates if the channel is a part of a
     distribution
    :type is_used_on_distribution: bool
    :param last_reading_date: Date of the most recent reading for this channel
    :type last_reading_date: datetime
    :param first_reading_date:
    :type first_reading_date: datetime
    :param auto_summarize: Indicates if the channels reading is auto
     summarized
    :type auto_summarize: bool
    :param channel_import_id: The import identifier for the channel.
    :type channel_import_id: str
    :param maximum_reading: The channel's max reading
    :type maximum_reading: float
    :param multiplier: The channel multiplier
    :type multiplier: float
    """

    _attribute_map = {
        'channel_id': {'key': 'channelId', 'type': 'int'},
        'channel_code': {'key': 'channelCode', 'type': 'str'},
        'meter': {'key': 'meter', 'type': 'MeterChild'},
        'commodity': {'key': 'commodity', 'type': 'CommodityChild'},
        'observation_type': {'key': 'observationType', 'type': 'ObservationTypeChild'},
        'observation_method': {'key': 'observationMethod', 'type': 'ObservationMethod'},
        'observation_rule': {'key': 'observationRule', 'type': 'ObservationRule'},
        'unit': {'key': 'unit', 'type': 'UnitChild'},
        'interval_minutes': {'key': 'intervalMinutes', 'type': 'int'},
        'hidden': {'key': 'hidden', 'type': 'bool'},
        'total_sum': {'key': 'totalSum', 'type': 'bool'},
        'properties': {'key': 'properties', 'type': 'DeviceChannelChild'},
        'has_readings': {'key': 'hasReadings', 'type': 'bool'},
        'is_used_on_distribution': {'key': 'isUsedOnDistribution', 'type': 'bool'},
        'last_reading_date': {'key': 'lastReadingDate', 'type': 'iso-8601'},
        'first_reading_date': {'key': 'firstReadingDate', 'type': 'iso-8601'},
        'auto_summarize': {'key': 'autoSummarize', 'type': 'bool'},
        'channel_import_id': {'key': 'channelImportId', 'type': 'str'},
        'maximum_reading': {'key': 'maximumReading', 'type': 'float'},
        'multiplier': {'key': 'multiplier', 'type': 'float'},
    }

    def __init__(self, channel_id=None, channel_code=None, meter=None, commodity=None, observation_type=None, observation_method=None, observation_rule=None, unit=None, interval_minutes=None, hidden=None, total_sum=None, properties=None, has_readings=None, is_used_on_distribution=None, last_reading_date=None, first_reading_date=None, auto_summarize=None, channel_import_id=None, maximum_reading=None, multiplier=None):
        super(ChannelResponse, self).__init__()
        self.channel_id = channel_id
        self.channel_code = channel_code
        self.meter = meter
        self.commodity = commodity
        self.observation_type = observation_type
        self.observation_method = observation_method
        self.observation_rule = observation_rule
        self.unit = unit
        self.interval_minutes = interval_minutes
        self.hidden = hidden
        self.total_sum = total_sum
        self.properties = properties
        self.has_readings = has_readings
        self.is_used_on_distribution = is_used_on_distribution
        self.last_reading_date = last_reading_date
        self.first_reading_date = first_reading_date
        self.auto_summarize = auto_summarize
        self.channel_import_id = channel_import_id
        self.maximum_reading = maximum_reading
        self.multiplier = multiplier
