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

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

    :param id: Required.
    :type id: str
    :param name: Required.
    :type name: str
    :param description:
    :type description: str
    :param is_sentry_managed: Required.
    :type is_sentry_managed: bool
    :param is_visible_to_customers: Required.
    :type is_visible_to_customers: bool
    :param created: Required.
    :type created: datetime
    :param updated: Required.
    :type updated: datetime
    :param created_by:
    :type created_by: ~smartdiagnostics_sdk.models.UserChild
    :param updated_by:
    :type updated_by: ~smartdiagnostics_sdk.models.UserChild
    :param dashboard_type:
    :type dashboard_type: ~smartdiagnostics_sdk.models.DashboardTypeChild
    :param corporation:
    :type corporation: ~smartdiagnostics_sdk.models.PrimaryCorporationChild
    :param location:
    :type location: ~smartdiagnostics_sdk.models.LocationChild
    :param dashboard_widgets:
    :type dashboard_widgets:
     list[~smartdiagnostics_sdk.models.DashboardWidgetChild]
    :param power_bi_report:
    :type power_bi_report: ~smartdiagnostics_sdk.models.PowerBiReportChild
    """

    _validation = {
        'id': {'required': True},
        'name': {'required': True},
        'is_sentry_managed': {'required': True},
        'is_visible_to_customers': {'required': True},
        'created': {'required': True},
        'updated': {'required': True},
    }

    _attribute_map = {
        'id': {'key': 'Id', 'type': 'str'},
        'name': {'key': 'Name', 'type': 'str'},
        'description': {'key': 'Description', 'type': 'str'},
        'is_sentry_managed': {'key': 'IsSentryManaged', 'type': 'bool'},
        'is_visible_to_customers': {'key': 'IsVisibleToCustomers', 'type': 'bool'},
        'created': {'key': 'Created', 'type': 'iso-8601'},
        'updated': {'key': 'Updated', 'type': 'iso-8601'},
        'created_by': {'key': 'CreatedBy', 'type': 'UserChild'},
        'updated_by': {'key': 'UpdatedBy', 'type': 'UserChild'},
        'dashboard_type': {'key': 'DashboardType', 'type': 'DashboardTypeChild'},
        'corporation': {'key': 'Corporation', 'type': 'PrimaryCorporationChild'},
        'location': {'key': 'Location', 'type': 'LocationChild'},
        'dashboard_widgets': {'key': 'DashboardWidgets', 'type': '[DashboardWidgetChild]'},
        'power_bi_report': {'key': 'PowerBiReport', 'type': 'PowerBiReportChild'},
    }

    def __init__(self, **kwargs):
        super(DashboardResponse, self).__init__(**kwargs)
        self.id = kwargs.get('id', None)
        self.name = kwargs.get('name', None)
        self.description = kwargs.get('description', None)
        self.is_sentry_managed = kwargs.get('is_sentry_managed', None)
        self.is_visible_to_customers = kwargs.get('is_visible_to_customers', None)
        self.created = kwargs.get('created', None)
        self.updated = kwargs.get('updated', None)
        self.created_by = kwargs.get('created_by', None)
        self.updated_by = kwargs.get('updated_by', None)
        self.dashboard_type = kwargs.get('dashboard_type', None)
        self.corporation = kwargs.get('corporation', None)
        self.location = kwargs.get('location', None)
        self.dashboard_widgets = kwargs.get('dashboard_widgets', None)
        self.power_bi_report = kwargs.get('power_bi_report', None)
