# 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 AdiEmsWebApiV2DtoProfileProfileGroup(Model):
    """Represents a folder in the profile tree of an EMS installation.

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

    :param id: Required. The globally unique ID for the profile group
    :type id: str
    :param name: Required. The display name of the profile group
    :type name: str
    :param description: The optional description that briefly describes the
     profile group
    :type description: str
    :param groups: An ordered listing of child profile groups contained in
     this group
    :type groups: list[~emsapi.models.AdiEmsWebApiV2DtoProfileProfileGroup]
    :param profiles: An ordered listing of child profiles contained in this
     group
    :type profiles: list[~emsapi.models.AdiEmsWebApiV2DtoProfileProfile]
    """

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

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'name': {'key': 'name', 'type': 'str'},
        'description': {'key': 'description', 'type': 'str'},
        'groups': {'key': 'groups', 'type': '[AdiEmsWebApiV2DtoProfileProfileGroup]'},
        'profiles': {'key': 'profiles', 'type': '[AdiEmsWebApiV2DtoProfileProfile]'},
    }

    def __init__(self, *, id: str, name: str, description: str=None, groups=None, profiles=None, **kwargs) -> None:
        super(AdiEmsWebApiV2DtoProfileProfileGroup, self).__init__(**kwargs)
        self.id = id
        self.name = name
        self.description = description
        self.groups = groups
        self.profiles = profiles
