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

    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 is_global: Required.
    :type is_global: bool
    :param indicator_types:
    :type indicator_types: list[str]
    :param sort_order:
    :type sort_order: int
    :param tags:
    :type tags: list[~smartdiagnostics_sdk.models.TagChild]
    :param location:
    :type location: ~smartdiagnostics_sdk.models.LocationChild
    :param system:
    :type system: ~smartdiagnostics_sdk.models.SystemChild
    """

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

    _attribute_map = {
        'id': {'key': 'Id', 'type': 'str'},
        'name': {'key': 'Name', 'type': 'str'},
        'is_global': {'key': 'IsGlobal', 'type': 'bool'},
        'indicator_types': {'key': 'IndicatorTypes', 'type': '[str]'},
        'sort_order': {'key': 'SortOrder', 'type': 'int'},
        'tags': {'key': 'Tags', 'type': '[TagChild]'},
        'location': {'key': 'Location', 'type': 'LocationChild'},
        'system': {'key': 'System', 'type': 'SystemChild'},
    }

    def __init__(self, *, id: str, name: str, is_global: bool, indicator_types=None, sort_order: int=None, tags=None, location=None, system=None, **kwargs) -> None:
        super(IndicatorFilterResponse, self).__init__(**kwargs)
        self.id = id
        self.name = name
        self.is_global = is_global
        self.indicator_types = indicator_types
        self.sort_order = sort_order
        self.tags = tags
        self.location = location
        self.system = system
