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

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

    :param id: Required.
    :type id: int
    :param code: Required.
    :type code: str
    :param name:
    :type name: str
    :param description:
    :type description: str
    :param activity_line_enabled:
    :type activity_line_enabled: bool
    :param activity_line_flag:
    :type activity_line_flag: str
    :param asset_card_enabled:
    :type asset_card_enabled: bool
    :param owner:
    :type owner: ~smartdiagnostics_sdk.models.ActivityEventCategoryOwnerChild
    :param internal:
    :type internal: bool
    :param subcategories:
    :type subcategories:
     list[~smartdiagnostics_sdk.models.ActivityEventSubcategoryChild]
    :param fields:
    :type fields: list[~smartdiagnostics_sdk.models.ActivityEventFieldChild]
    """

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

    _attribute_map = {
        'id': {'key': 'Id', 'type': 'int'},
        'code': {'key': 'Code', 'type': 'str'},
        'name': {'key': 'Name', 'type': 'str'},
        'description': {'key': 'Description', 'type': 'str'},
        'activity_line_enabled': {'key': 'ActivityLineEnabled', 'type': 'bool'},
        'activity_line_flag': {'key': 'ActivityLineFlag', 'type': 'str'},
        'asset_card_enabled': {'key': 'AssetCardEnabled', 'type': 'bool'},
        'owner': {'key': 'Owner', 'type': 'ActivityEventCategoryOwnerChild'},
        'internal': {'key': 'Internal', 'type': 'bool'},
        'subcategories': {'key': 'Subcategories', 'type': '[ActivityEventSubcategoryChild]'},
        'fields': {'key': 'Fields', 'type': '[ActivityEventFieldChild]'},
    }

    def __init__(self, **kwargs):
        super(ActivityEventCategoryResponse, self).__init__(**kwargs)
        self.id = kwargs.get('id', None)
        self.code = kwargs.get('code', None)
        self.name = kwargs.get('name', None)
        self.description = kwargs.get('description', None)
        self.activity_line_enabled = kwargs.get('activity_line_enabled', None)
        self.activity_line_flag = kwargs.get('activity_line_flag', None)
        self.asset_card_enabled = kwargs.get('asset_card_enabled', None)
        self.owner = kwargs.get('owner', None)
        self.internal = kwargs.get('internal', None)
        self.subcategories = kwargs.get('subcategories', None)
        self.fields = kwargs.get('fields', None)
