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

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

    :param is_deprecated: Required.
    :type is_deprecated: bool
    :param name: Required.
    :type name: str
    :param version: Required.
    :type version: str
    :param group_type: Possible values include: 'Asset', 'MonitoringPoint',
     'IndicatorGroup', 'Group', 'AnalyticModel'
    :type group_type: str or ~smartdiagnostics_sdk.models.enum
    :param indicators:
    :type indicators:
     list[~smartdiagnostics_sdk.models.AnalyticsModelIndicatorChild]
    :param related_model_ids:
    :type related_model_ids: list[int]
    :param properties:
    :type properties: list[~smartdiagnostics_sdk.models.PropertyRequestChild]
    :param triggers:
    :type triggers: list[~smartdiagnostics_sdk.models.TriggerChild]
    """

    _validation = {
        'is_deprecated': {'required': True},
        'name': {'required': True, 'max_length': 50, 'min_length': 0},
        'version': {'required': True, 'max_length': 50, 'min_length': 0},
    }

    _attribute_map = {
        'is_deprecated': {'key': 'IsDeprecated', 'type': 'bool'},
        'name': {'key': 'Name', 'type': 'str'},
        'version': {'key': 'Version', 'type': 'str'},
        'group_type': {'key': 'GroupType', 'type': 'str'},
        'indicators': {'key': 'Indicators', 'type': '[AnalyticsModelIndicatorChild]'},
        'related_model_ids': {'key': 'RelatedModelIds', 'type': '[int]'},
        'properties': {'key': 'Properties', 'type': '[PropertyRequestChild]'},
        'triggers': {'key': 'Triggers', 'type': '[TriggerChild]'},
    }

    def __init__(self, *, is_deprecated: bool, name: str, version: str, group_type=None, indicators=None, related_model_ids=None, properties=None, triggers=None, **kwargs) -> None:
        super(AnalyticsModelUpdateRequest, self).__init__(**kwargs)
        self.is_deprecated = is_deprecated
        self.name = name
        self.version = version
        self.group_type = group_type
        self.indicators = indicators
        self.related_model_ids = related_model_ids
        self.properties = properties
        self.triggers = triggers
