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

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

    :param category_id: Required.
    :type category_id: int
    :param category_name: Required.
    :type category_name: str
    :param category_code: Required.
    :type category_code: str
    :param category_marker:
    :type category_marker:
     ~smartdiagnostics_sdk.models.AssetCategoryMarkerChild
    :param category_sizes:
    :type category_sizes: list[~smartdiagnostics_sdk.models.AssetSizeChild]
    """

    _validation = {
        'category_id': {'required': True},
        'category_name': {'required': True},
        'category_code': {'required': True},
    }

    _attribute_map = {
        'category_id': {'key': 'CategoryId', 'type': 'int'},
        'category_name': {'key': 'CategoryName', 'type': 'str'},
        'category_code': {'key': 'CategoryCode', 'type': 'str'},
        'category_marker': {'key': 'CategoryMarker', 'type': 'AssetCategoryMarkerChild'},
        'category_sizes': {'key': 'CategorySizes', 'type': '[AssetSizeChild]'},
    }

    def __init__(self, *, category_id: int, category_name: str, category_code: str, category_marker=None, category_sizes=None, **kwargs) -> None:
        super(AssetCategoryWithSizeChild, self).__init__(**kwargs)
        self.category_id = category_id
        self.category_name = category_name
        self.category_code = category_code
        self.category_marker = category_marker
        self.category_sizes = category_sizes
