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

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

    :param id: Required.
    :type id: str
    :param title: Required.
    :type title: str
    :param description:
    :type description: str
    :param start_date_time: Required.
    :type start_date_time: datetime
    :param end_date_time:
    :type end_date_time: datetime
    :param activity_line_enabled:
    :type activity_line_enabled: bool
    :param created: Required.
    :type created: datetime
    :param created_by: Required.
    :type created_by: str
    :param location: Required.
    :type location: ~smartdiagnostics_sdk.models.LocationChild
    :param category: Required.
    :type category: ~smartdiagnostics_sdk.models.ActivityEventCategoryChild
    :param hierarchy: Required.
    :type hierarchy: list[~smartdiagnostics_sdk.models.HierarchyChild]
    :param indicators:
    :type indicators:
     list[~smartdiagnostics_sdk.models.ActivityEventIndicatorChild]
    """

    _validation = {
        'id': {'required': True},
        'title': {'required': True},
        'start_date_time': {'required': True},
        'created': {'required': True},
        'created_by': {'required': True},
        'location': {'required': True},
        'category': {'required': True},
        'hierarchy': {'required': True},
    }

    _attribute_map = {
        'id': {'key': 'Id', 'type': 'str'},
        'title': {'key': 'Title', 'type': 'str'},
        'description': {'key': 'Description', 'type': 'str'},
        'start_date_time': {'key': 'StartDateTime', 'type': 'iso-8601'},
        'end_date_time': {'key': 'EndDateTime', 'type': 'iso-8601'},
        'activity_line_enabled': {'key': 'ActivityLineEnabled', 'type': 'bool'},
        'created': {'key': 'Created', 'type': 'iso-8601'},
        'created_by': {'key': 'CreatedBy', 'type': 'str'},
        'location': {'key': 'Location', 'type': 'LocationChild'},
        'category': {'key': 'Category', 'type': 'ActivityEventCategoryChild'},
        'hierarchy': {'key': 'Hierarchy', 'type': '[HierarchyChild]'},
        'indicators': {'key': 'Indicators', 'type': '[ActivityEventIndicatorChild]'},
    }

    def __init__(self, **kwargs):
        super(ActivityEventHierarchyGroupResponse, self).__init__(**kwargs)
        self.id = kwargs.get('id', None)
        self.title = kwargs.get('title', None)
        self.description = kwargs.get('description', None)
        self.start_date_time = kwargs.get('start_date_time', None)
        self.end_date_time = kwargs.get('end_date_time', None)
        self.activity_line_enabled = kwargs.get('activity_line_enabled', None)
        self.created = kwargs.get('created', None)
        self.created_by = kwargs.get('created_by', None)
        self.location = kwargs.get('location', None)
        self.category = kwargs.get('category', None)
        self.hierarchy = kwargs.get('hierarchy', None)
        self.indicators = kwargs.get('indicators', None)
