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

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

    :param cost_center_id: The cost center identifier
    :type cost_center_id: int
    :param cost_center_code: Required. The cost center code <span
     class='property-internal'>Required</span> <span
     class='property-internal'>Must be between 0 and 32 characters</span>
    :type cost_center_code: str
    :param cost_center_info: Required. The cost center info <span
     class='property-internal'>Required</span> <span
     class='property-internal'>Must be between 0 and 50 characters</span>
    :type cost_center_info: str
    :param parent_path: The collection of cost centers representing the path
     to its parent
    :type parent_path: list[~energycap.sdk.models.CostCenterChild]
    """

    _validation = {
        'cost_center_code': {'required': True, 'max_length': 32, 'min_length': 0},
        'cost_center_info': {'required': True, 'max_length': 50, 'min_length': 0},
    }

    _attribute_map = {
        'cost_center_id': {'key': 'costCenterId', 'type': 'int'},
        'cost_center_code': {'key': 'costCenterCode', 'type': 'str'},
        'cost_center_info': {'key': 'costCenterInfo', 'type': 'str'},
        'parent_path': {'key': 'parentPath', 'type': '[CostCenterChild]'},
    }

    def __init__(self, *, cost_center_code: str, cost_center_info: str, cost_center_id: int=None, parent_path=None, **kwargs) -> None:
        super(SearchCostCenterChildSearchCostCenter, self).__init__(**kwargs)
        self.cost_center_id = cost_center_id
        self.cost_center_code = cost_center_code
        self.cost_center_info = cost_center_info
        self.parent_path = parent_path
