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

    :param specific_report_id: Unique identifier for the report
    :type specific_report_id: int
    :param base_report:
    :type base_report: ~energycap.sdk.models.ReportChild
    :param specific_report_code: Report code
    :type specific_report_code: str
    :param specific_report_info: Report name
    :type specific_report_info: str
    :param last_viewed: Last time this report was run
    :type last_viewed: datetime
    :param recommended: Indicates if this is a recommended report
    :type recommended: bool
    :param report_category:
    :type report_category: ~energycap.sdk.models.ReportCategoryChild
    :param description: The report description
    :type description: str
    :param visible: Indicates if this report is visible to the current user
    :type visible: bool
    :param shared: Indicates if this report is shared
    :type shared: bool
    :param user:
    :type user: ~energycap.sdk.models.UserChild
    :param subscription:
    :type subscription: ~energycap.sdk.models.ReportSubscriptionChild
    :param related_reports: List of reports related to this report
    :type related_reports: list[~energycap.sdk.models.RelatedReportResponse]
    """

    _attribute_map = {
        'specific_report_id': {'key': 'specificReportId', 'type': 'int'},
        'base_report': {'key': 'baseReport', 'type': 'ReportChild'},
        'specific_report_code': {'key': 'specificReportCode', 'type': 'str'},
        'specific_report_info': {'key': 'specificReportInfo', 'type': 'str'},
        'last_viewed': {'key': 'lastViewed', 'type': 'iso-8601'},
        'recommended': {'key': 'recommended', 'type': 'bool'},
        'report_category': {'key': 'reportCategory', 'type': 'ReportCategoryChild'},
        'description': {'key': 'description', 'type': 'str'},
        'visible': {'key': 'visible', 'type': 'bool'},
        'shared': {'key': 'shared', 'type': 'bool'},
        'user': {'key': 'user', 'type': 'UserChild'},
        'subscription': {'key': 'subscription', 'type': 'ReportSubscriptionChild'},
        'related_reports': {'key': 'relatedReports', 'type': '[RelatedReportResponse]'},
    }

    def __init__(self, **kwargs):
        super(SpecificReportResponse, self).__init__(**kwargs)
        self.specific_report_id = kwargs.get('specific_report_id', None)
        self.base_report = kwargs.get('base_report', None)
        self.specific_report_code = kwargs.get('specific_report_code', None)
        self.specific_report_info = kwargs.get('specific_report_info', None)
        self.last_viewed = kwargs.get('last_viewed', None)
        self.recommended = kwargs.get('recommended', None)
        self.report_category = kwargs.get('report_category', None)
        self.description = kwargs.get('description', None)
        self.visible = kwargs.get('visible', None)
        self.shared = kwargs.get('shared', None)
        self.user = kwargs.get('user', None)
        self.subscription = kwargs.get('subscription', None)
        self.related_reports = kwargs.get('related_reports', None)
