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

    :param has_attachments:
    :type has_attachments: bool
    :param task_id:
    :type task_id: int
    :param task_gu_id: The task guid
    :type task_gu_id: str
    :param task_type:
    :type task_type: ~energycap.sdk.models.TaskType
    :param begin_date: The date and time the task began
    :type begin_date: datetime
    :param end_date: The date and time the task finished. If the task is not
     finished, endDate will have no value
    :type end_date: datetime
    :param user:
    :type user: ~energycap.sdk.models.UserChild
    :param message: The task's message
    :type message: str
    :param output: The task's output. For certain task types, this field could
     be sizable
    :type output: object
    :param settings: The task's settings
    :type settings: object
    :param status: The task's status
    :type status: str
    :param task_note: User provided note/comment for this Task
    :type task_note: str
    :param analyzing_count: Count of bills that are in the analyzing state,
     used by bill import tasks only
    :type analyzing_count: int
    :param unresolved_flag_count: The count of bills with unresolved flags on
     this task, used by bill import tasks only
    :type unresolved_flag_count: int
    :param current_success_count: The count of successful bills that still
     exist (i.e. have not been deleted), used by bill import tasks only
    :type current_success_count: int
    """

    _attribute_map = {
        'has_attachments': {'key': 'hasAttachments', 'type': 'bool'},
        'task_id': {'key': 'taskId', 'type': 'int'},
        'task_gu_id': {'key': 'taskGUId', 'type': 'str'},
        'task_type': {'key': 'taskType', 'type': 'TaskType'},
        'begin_date': {'key': 'beginDate', 'type': 'iso-8601'},
        'end_date': {'key': 'endDate', 'type': 'iso-8601'},
        'user': {'key': 'user', 'type': 'UserChild'},
        'message': {'key': 'message', 'type': 'str'},
        'output': {'key': 'output', 'type': 'object'},
        'settings': {'key': 'settings', 'type': 'object'},
        'status': {'key': 'status', 'type': 'str'},
        'task_note': {'key': 'taskNote', 'type': 'str'},
        'analyzing_count': {'key': 'analyzingCount', 'type': 'int'},
        'unresolved_flag_count': {'key': 'unresolvedFlagCount', 'type': 'int'},
        'current_success_count': {'key': 'currentSuccessCount', 'type': 'int'},
    }

    def __init__(self, **kwargs):
        super(TaskResponse, self).__init__(**kwargs)
        self.has_attachments = kwargs.get('has_attachments', None)
        self.task_id = kwargs.get('task_id', None)
        self.task_gu_id = kwargs.get('task_gu_id', None)
        self.task_type = kwargs.get('task_type', None)
        self.begin_date = kwargs.get('begin_date', None)
        self.end_date = kwargs.get('end_date', None)
        self.user = kwargs.get('user', None)
        self.message = kwargs.get('message', None)
        self.output = kwargs.get('output', None)
        self.settings = kwargs.get('settings', None)
        self.status = kwargs.get('status', None)
        self.task_note = kwargs.get('task_note', None)
        self.analyzing_count = kwargs.get('analyzing_count', None)
        self.unresolved_flag_count = kwargs.get('unresolved_flag_count', None)
        self.current_success_count = kwargs.get('current_success_count', None)
