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

    :param parent_id: The cost center's parent
    :type parent_id: int
    :param cost_center_id: The cost center's primary ID
    :type cost_center_id: int
    :param cost_center_info: CostCenterInfo
    :type cost_center_info: str
    :param cost_center_code: CostCenterCode
    :type cost_center_code: str
    :param has_children: If this costCenter has any children, either accounts
     or costCenters
    :type has_children: bool
    :param has_cost_center_children: If this costCenter has any costCenter
     children
    :type has_cost_center_children: bool
    :param has_account_children: If this costCenter has any account children
    :type has_account_children: bool
    :param has_active_children: If this costCenter has any costCenter children
     or active account children
    :type has_active_children: bool
    :param has_active_account_children: If this costCenter has any active
     account children
    :type has_active_account_children: bool
    :param account_children: List of account children
    :type account_children: list[~energycap.sdk.models.CostCenterAccountChild]
    :param cost_center_children: List of costCenter children
    :type cost_center_children:
     list[~energycap.sdk.models.HierarchicalCostCenters2]
    """

    _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': '[HierarchicalCostCenters2]'},
    }

    def __init__(self, *, parent_id: int=None, cost_center_id: int=None, cost_center_info: str=None, cost_center_code: str=None, has_children: bool=None, has_cost_center_children: bool=None, has_account_children: bool=None, has_active_children: bool=None, has_active_account_children: bool=None, account_children=None, cost_center_children=None, **kwargs) -> None:
        super(HierarchicalCostCenters, self).__init__(**kwargs)
        self.parent_id = parent_id
        self.cost_center_id = cost_center_id
        self.cost_center_info = cost_center_info
        self.cost_center_code = cost_center_code
        self.has_children = has_children
        self.has_cost_center_children = has_cost_center_children
        self.has_account_children = has_account_children
        self.has_active_children = has_active_children
        self.has_active_account_children = has_active_account_children
        self.account_children = account_children
        self.cost_center_children = cost_center_children
