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

    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 system_sort_order:
    :type system_sort_order: int
    :param indicator_type:
    :type indicator_type: str
    :param display_units:
    :type display_units: str
    :param base_units:
    :type base_units: str
    :param has_spectrum:
    :type has_spectrum: bool
    :param hierarchy:
    :type hierarchy: list[~smartdiagnostics_sdk.models.HierarchyChild]
    :param alarm_definition:
    :type alarm_definition: ~smartdiagnostics_sdk.models.AlarmDefinitionChild
    """

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

    _attribute_map = {
        'id': {'key': 'Id', 'type': 'str'},
        'name': {'key': 'Name', 'type': 'str'},
        'system_sort_order': {'key': 'SystemSortOrder', 'type': 'int'},
        'indicator_type': {'key': 'IndicatorType', 'type': 'str'},
        'display_units': {'key': 'DisplayUnits', 'type': 'str'},
        'base_units': {'key': 'BaseUnits', 'type': 'str'},
        'has_spectrum': {'key': 'HasSpectrum', 'type': 'bool'},
        'hierarchy': {'key': 'Hierarchy', 'type': '[HierarchyChild]'},
        'alarm_definition': {'key': 'AlarmDefinition', 'type': 'AlarmDefinitionChild'},
    }

    def __init__(self, **kwargs):
        super(IndicatorResponse, self).__init__(**kwargs)
        self.id = kwargs.get('id', None)
        self.name = kwargs.get('name', None)
        self.system_sort_order = kwargs.get('system_sort_order', None)
        self.indicator_type = kwargs.get('indicator_type', None)
        self.display_units = kwargs.get('display_units', None)
        self.base_units = kwargs.get('base_units', None)
        self.has_spectrum = kwargs.get('has_spectrum', None)
        self.hierarchy = kwargs.get('hierarchy', None)
        self.alarm_definition = kwargs.get('alarm_definition', None)
