# 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 interval_minutes: The interval of the channel. The interval is
     measured in minutes
    :type interval_minutes: int
    :param observation_type:
    :type observation_type: ~energycap.sdk.models.ObservationTypeChild
    :param channel_description: Description of the channel
    :type channel_description: str
    :param channel_import_id: The import identifier for the channel.
    :type channel_import_id: str
    :param has_readings: Indicates if the channel has readings
    :type has_readings: bool
    :param first_reading_date: Date of the earliest reading for the channel
    :type first_reading_date: datetime
    :param last_reading_date: Date of the most recent reading for the channel
    :type last_reading_date: datetime
    :param channel_versions: List of channel versions
     Versions include channel settings that may change over time
    :type channel_versions: list[~energycap.sdk.models.ChannelVersionResponse]
    :param is_used_on_distribution: Indicates if the channel is a part of a
     distribution
    :type is_used_on_distribution: bool
    :param meter:
    :type meter: ~energycap.sdk.models.MeterChildIncludeMeterImportIdAndRoute
    """

    _attribute_map = {
        'channel_id': {'key': 'channelId', 'type': 'int'},
        'interval_minutes': {'key': 'intervalMinutes', 'type': 'int'},
        'observation_type': {'key': 'observationType', 'type': 'ObservationTypeChild'},
        'channel_description': {'key': 'channelDescription', 'type': 'str'},
        'channel_import_id': {'key': 'channelImportId', 'type': 'str'},
        'has_readings': {'key': 'hasReadings', 'type': 'bool'},
        'first_reading_date': {'key': 'firstReadingDate', 'type': 'iso-8601'},
        'last_reading_date': {'key': 'lastReadingDate', 'type': 'iso-8601'},
        'channel_versions': {'key': 'channelVersions', 'type': '[ChannelVersionResponse]'},
        'is_used_on_distribution': {'key': 'isUsedOnDistribution', 'type': 'bool'},
        'meter': {'key': 'meter', 'type': 'MeterChildIncludeMeterImportIdAndRoute'},
    }

    def __init__(self, *, channel_id: int=None, interval_minutes: int=None, observation_type=None, channel_description: str=None, channel_import_id: str=None, has_readings: bool=None, first_reading_date=None, last_reading_date=None, channel_versions=None, is_used_on_distribution: bool=None, meter=None, **kwargs) -> None:
        super(ChannelResponse, self).__init__(**kwargs)
        self.channel_id = channel_id
        self.interval_minutes = interval_minutes
        self.observation_type = observation_type
        self.channel_description = channel_description
        self.channel_import_id = channel_import_id
        self.has_readings = has_readings
        self.first_reading_date = first_reading_date
        self.last_reading_date = last_reading_date
        self.channel_versions = channel_versions
        self.is_used_on_distribution = is_used_on_distribution
        self.meter = meter
