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

    :param parent_id:
    :type parent_id: int
    :param cost_center_id:
    :type cost_center_id: int
    :param cost_center_info:
    :type cost_center_info: str
    :param cost_center_code:
    :type cost_center_code: str
    :param has_children:
    :type has_children: bool
    :param has_cost_center_children:
    :type has_cost_center_children: bool
    :param has_account_children:
    :type has_account_children: bool
    :param has_active_children:
    :type has_active_children: bool
    :param has_active_account_children:
    :type has_active_account_children: bool
    :param account_children:
    :type account_children: list[~energycap.sdk.models.CostCenterAccountChild]
    :param cost_center_children:
    :type cost_center_children:
     list[~energycap.sdk.models.HierarchicalCostCenters]
    """

    _attribute_map = {
        'parent_id': {'key': 'parentId', 'type': 'int'},
        'cost_center_id': {'key': 'costCenterId', 'type': 'int'},
        'cost_center_info': {'key': 'costCenterInfo', 'type': 'str'},
        'cost_center_code': {'key': 'costCenterCode', 'type': 'str'},
        'has_children': {'key': 'hasChildren', 'type': 'bool'},
        'has_cost_center_children': {'key': 'hasCostCenterChildren', 'type': 'bool'},
        'has_account_children': {'key': 'hasAccountChildren', 'type': 'bool'},
        'has_active_children': {'key': 'hasActiveChildren', 'type': 'bool'},
        'has_active_account_children': {'key': 'hasActiveAccountChildren', 'type': 'bool'},
        'account_children': {'key': 'accountChildren', 'type': '[CostCenterAccountChild]'},
        'cost_center_children': {'key': 'costCenterChildren', 'type': '[HierarchicalCostCenters]'},
    }

    def __init__(self, **kwargs):
        super(HierarchicalCostCenters2, self).__init__(**kwargs)
        self.parent_id = kwargs.get('parent_id', None)
        self.cost_center_id = kwargs.get('cost_center_id', None)
        self.cost_center_info = kwargs.get('cost_center_info', None)
        self.cost_center_code = kwargs.get('cost_center_code', None)
        self.has_children = kwargs.get('has_children', None)
        self.has_cost_center_children = kwargs.get('has_cost_center_children', None)
        self.has_account_children = kwargs.get('has_account_children', None)
        self.has_active_children = kwargs.get('has_active_children', None)
        self.has_active_account_children = kwargs.get('has_active_account_children', None)
        self.account_children = kwargs.get('account_children', None)
        self.cost_center_children = kwargs.get('cost_center_children', None)
