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

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

    :param id: Required.
    :type id: int
    :param name: Required.
    :type name: str
    :param version: Required.
    :type version: str
    :param properties:
    :type properties: list[~smartdiagnostics_sdk.models.PropertyChild]
    :param corporation:
    :type corporation: ~smartdiagnostics_sdk.models.CorporationChild
    :param location:
    :type location: ~smartdiagnostics_sdk.models.LocationChild
    :param group_type: Possible values include: 'Invalid', 'Group', 'Asset',
     'MonitoringPoint', 'IndicatorGroup'
    :type group_type: str or ~smartdiagnostics_sdk.models.enum
    """

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

    _attribute_map = {
        'id': {'key': 'Id', 'type': 'int'},
        'name': {'key': 'Name', 'type': 'str'},
        'version': {'key': 'Version', 'type': 'str'},
        'properties': {'key': 'Properties', 'type': '[PropertyChild]'},
        'corporation': {'key': 'Corporation', 'type': 'CorporationChild'},
        'location': {'key': 'Location', 'type': 'LocationChild'},
        'group_type': {'key': 'GroupType', 'type': 'str'},
    }

    def __init__(self, *, id: int, name: str, version: str, properties=None, corporation=None, location=None, group_type=None, **kwargs) -> None:
        super(AnalyticsModelResponse, self).__init__(**kwargs)
        self.id = id
        self.name = name
        self.version = version
        self.properties = properties
        self.corporation = corporation
        self.location = location
        self.group_type = group_type
