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

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

    :param title: Required. The title of the dashboard. <span
     class='property-internal'>Required</span>
    :type title: str
    :param description: The description of the dashboard. <span
     class='property-internal'>Required (defined)</span>
    :type description: str
    :param show_cost: Flag to indicate if Cost data should be shown on the
     dashboard. <span class='property-internal'>Required (defined)</span>
    :type show_cost: bool
    :param show_use: Flag to indicate if Use data should be shown on the
     dashboard. <span class='property-internal'>Required (defined)</span>
    :type show_use: bool
    :param show_ghg: Flag to indicate if Greenhouse Gas data should be shown
     on the dashboard. <span class='property-internal'>Required
     (defined)</span>
    :type show_ghg: bool
    :param map_dashboard_filter: Filters to apply to the map. <span
     class='property-internal'>Required (defined)</span>
    :type map_dashboard_filter: list[~energycap.sdk.models.FilterEdit]
    :param global_commodity_display: Set how commodities should be ordered for
     each data type. Applied individually to Cost, Use, and GHG Emissions.
     Highest - Order displayed commodities in order of Highest Cost/Use/GHG
     Emissions
     Lowest - Order displayed commodities in order Lowest Cost/Use/GHG
     Emissions
     Fixed - Select up to 5 fixed commodities to display. <span
     class='property-internal'>One of Highest, Lowest, Fixed </span> <span
     class='property-internal'>Required (defined)</span>
    :type global_commodity_display: str
    :param fixed_commodity_ids: List of Commodities to display for each data
     type. Required if GlobalCommodityDisplay is Fixed, ignored otherwise.
     Maximum length of 5 items. <span class='property-internal'>Required when
     GlobalCommodityDisplay is set to Fixed</span><span
     class='property-internal'>List cannot be empty</span>
    :type fixed_commodity_ids: list[int]
    """

    _validation = {
        'title': {'required': True, 'max_length': 255},
        'description': {'max_length': 255},
    }

    _attribute_map = {
        'title': {'key': 'title', 'type': 'str'},
        'description': {'key': 'description', 'type': 'str'},
        'show_cost': {'key': 'showCost', 'type': 'bool'},
        'show_use': {'key': 'showUse', 'type': 'bool'},
        'show_ghg': {'key': 'showGHG', 'type': 'bool'},
        'map_dashboard_filter': {'key': 'mapDashboardFilter', 'type': '[FilterEdit]'},
        'global_commodity_display': {'key': 'globalCommodityDisplay', 'type': 'str'},
        'fixed_commodity_ids': {'key': 'fixedCommodityIds', 'type': '[int]'},
    }

    def __init__(self, **kwargs):
        super(MapDashboardSettingsRequest, self).__init__(**kwargs)
        self.title = kwargs.get('title', None)
        self.description = kwargs.get('description', None)
        self.show_cost = kwargs.get('show_cost', None)
        self.show_use = kwargs.get('show_use', None)
        self.show_ghg = kwargs.get('show_ghg', None)
        self.map_dashboard_filter = kwargs.get('map_dashboard_filter', None)
        self.global_commodity_display = kwargs.get('global_commodity_display', None)
        self.fixed_commodity_ids = kwargs.get('fixed_commodity_ids', None)
