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

    All required parameters must be populated in order to send to Azure.

    :param id: Required.
    :type id: str
    :param name: Required.
    :type name: str
    :param monitoring_point_type: Possible values include: 'Custom',
     'Vibration', 'Pressure', 'OilQuality', 'GeneralInput', 'IndicatorBased',
     'GeneralAtoD'
    :type monitoring_point_type: str or ~smartdiagnostics_sdk.models.enum
    :param is_paused: Required.
    :type is_paused: bool
    :param is_snoozed: Required.
    :type is_snoozed: bool
    :param running_speed_multiplier:
    :type running_speed_multiplier: float
    :param node:
    :type node: ~smartdiagnostics_sdk.models.MonitoringPointOverviewNodeChild
    :param hierarchy:
    :type hierarchy: list[~smartdiagnostics_sdk.models.OverviewHierarchyChild]
    :param node_settings:
    :type node_settings: ~smartdiagnostics_sdk.models.NodeSettingOverview
    """

    _validation = {
        'id': {'required': True},
        'name': {'required': True},
        'is_paused': {'required': True},
        'is_snoozed': {'required': True},
    }

    _attribute_map = {
        'id': {'key': 'Id', 'type': 'str'},
        'name': {'key': 'Name', 'type': 'str'},
        'monitoring_point_type': {'key': 'MonitoringPointType', 'type': 'str'},
        'is_paused': {'key': 'IsPaused', 'type': 'bool'},
        'is_snoozed': {'key': 'IsSnoozed', 'type': 'bool'},
        'running_speed_multiplier': {'key': 'RunningSpeedMultiplier', 'type': 'float'},
        'node': {'key': 'Node', 'type': 'MonitoringPointOverviewNodeChild'},
        'hierarchy': {'key': 'Hierarchy', 'type': '[OverviewHierarchyChild]'},
        'node_settings': {'key': 'NodeSettings', 'type': 'NodeSettingOverview'},
    }

    def __init__(self, **kwargs):
        super(MonitoringPointOverviewResponse, self).__init__(**kwargs)
        self.id = kwargs.get('id', None)
        self.name = kwargs.get('name', None)
        self.monitoring_point_type = kwargs.get('monitoring_point_type', None)
        self.is_paused = kwargs.get('is_paused', None)
        self.is_snoozed = kwargs.get('is_snoozed', None)
        self.running_speed_multiplier = kwargs.get('running_speed_multiplier', None)
        self.node = kwargs.get('node', None)
        self.hierarchy = kwargs.get('hierarchy', None)
        self.node_settings = kwargs.get('node_settings', None)
