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

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

    :param specific_widget_id: Required. Specific Widget identifier <span
     class='property-internal'>Required</span>
    :type specific_widget_id: int
    :param title: Required. Personal Widget title <span
     class='property-internal'>Must be between 0 and 600 characters</span>
     <span class='property-internal'>Required</span>
    :type title: str
    :param row: Dashboard row <span class='property-internal'>Required
     (defined)</span>
    :type row: int
    :param col: Dashboard column <span class='property-internal'>Required
     (defined)</span>
    :type col: int
    :param height: Widget height <span class='property-internal'>Required
     (defined)</span>
    :type height: int
    :param width: Widget width <span class='property-internal'>Required
     (defined)</span>
    :type width: int
    :param user_widget_description: Personal Widget description <span
     class='property-internal'>Must be between 0 and 600 characters</span>
     <span class='property-internal'>Required (defined)</span>
    :type user_widget_description: str
    :param filters: Widget filters <span class='property-internal'>Required
     (defined)</span>
    :type filters: list[~energycap.sdk.models.FilterEdit]
    """

    _validation = {
        'specific_widget_id': {'required': True},
        'title': {'required': True, 'max_length': 600, 'min_length': 0},
        'user_widget_description': {'max_length': 600, 'min_length': 0},
    }

    _attribute_map = {
        'specific_widget_id': {'key': 'specificWidgetId', 'type': 'int'},
        'title': {'key': 'title', 'type': 'str'},
        'row': {'key': 'row', 'type': 'int'},
        'col': {'key': 'col', 'type': 'int'},
        'height': {'key': 'height', 'type': 'int'},
        'width': {'key': 'width', 'type': 'int'},
        'user_widget_description': {'key': 'userWidgetDescription', 'type': 'str'},
        'filters': {'key': 'filters', 'type': '[FilterEdit]'},
    }

    def __init__(self, **kwargs):
        super(WidgetEdit, self).__init__(**kwargs)
        self.specific_widget_id = kwargs.get('specific_widget_id', None)
        self.title = kwargs.get('title', None)
        self.row = kwargs.get('row', None)
        self.col = kwargs.get('col', None)
        self.height = kwargs.get('height', None)
        self.width = kwargs.get('width', None)
        self.user_widget_description = kwargs.get('user_widget_description', None)
        self.filters = kwargs.get('filters', None)
