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

    :param status: Possible values include: 'NotStarted', 'Queued', 'Running',
     'Failed', 'Finished', 'Canceled', 'PartiallyExecuted', 'Bypassed'
    :type status: str or ~designer.models.TaskStatusCode
    :param run_status: Possible values include: 'NotStarted', 'Starting',
     'Provisioning', 'Preparing', 'Queued', 'Running', 'Finalizing',
     'CancelRequested', 'Completed', 'Failed', 'Canceled', 'NotResponding'
    :type run_status: str or ~designer.models.RunStatus
    :param aether_start_time:
    :type aether_start_time: datetime
    :param aether_end_time:
    :type aether_end_time: datetime
    :param aether_creation_time:
    :type aether_creation_time: datetime
    :param run_history_start_time:
    :type run_history_start_time: datetime
    :param run_history_end_time:
    :type run_history_end_time: datetime
    :param run_history_creation_time:
    :type run_history_creation_time: datetime
    :param reuse_info:
    :type reuse_info: ~designer.models.TaskReuseInfo
    :param status_code: Possible values include: 'NotStarted', 'Queued',
     'Running', 'Failed', 'Finished', 'Canceled', 'PartiallyExecuted',
     'Bypassed'
    :type status_code: str or ~designer.models.TaskStatusCode
    :param status_detail:
    :type status_detail: str
    :param creation_time:
    :type creation_time: datetime
    :param schedule_time:
    :type schedule_time: datetime
    :param start_time:
    :type start_time: datetime
    :param end_time:
    :type end_time: datetime
    :param request_id:
    :type request_id: str
    :param run_id:
    :type run_id: str
    :param data_container_id:
    :type data_container_id: str
    :param real_time_log_path:
    :type real_time_log_path: str
    :param has_warnings:
    :type has_warnings: bool
    :param composite_node_id:
    :type composite_node_id: str
    """

    _attribute_map = {
        'status': {'key': 'status', 'type': 'str'},
        'run_status': {'key': 'runStatus', 'type': 'str'},
        'aether_start_time': {'key': 'aetherStartTime', 'type': 'iso-8601'},
        'aether_end_time': {'key': 'aetherEndTime', 'type': 'iso-8601'},
        'aether_creation_time': {'key': 'aetherCreationTime', 'type': 'iso-8601'},
        'run_history_start_time': {'key': 'runHistoryStartTime', 'type': 'iso-8601'},
        'run_history_end_time': {'key': 'runHistoryEndTime', 'type': 'iso-8601'},
        'run_history_creation_time': {'key': 'runHistoryCreationTime', 'type': 'iso-8601'},
        'reuse_info': {'key': 'reuseInfo', 'type': 'TaskReuseInfo'},
        'status_code': {'key': 'statusCode', 'type': 'str'},
        'status_detail': {'key': 'statusDetail', 'type': 'str'},
        'creation_time': {'key': 'creationTime', 'type': 'iso-8601'},
        'schedule_time': {'key': 'scheduleTime', 'type': 'iso-8601'},
        'start_time': {'key': 'startTime', 'type': 'iso-8601'},
        'end_time': {'key': 'endTime', 'type': 'iso-8601'},
        'request_id': {'key': 'requestId', 'type': 'str'},
        'run_id': {'key': 'runId', 'type': 'str'},
        'data_container_id': {'key': 'dataContainerId', 'type': 'str'},
        'real_time_log_path': {'key': 'realTimeLogPath', 'type': 'str'},
        'has_warnings': {'key': 'hasWarnings', 'type': 'bool'},
        'composite_node_id': {'key': 'compositeNodeId', 'type': 'str'},
    }

    def __init__(self, *, status=None, run_status=None, aether_start_time=None, aether_end_time=None, aether_creation_time=None, run_history_start_time=None, run_history_end_time=None, run_history_creation_time=None, reuse_info=None, status_code=None, status_detail: str=None, creation_time=None, schedule_time=None, start_time=None, end_time=None, request_id: str=None, run_id: str=None, data_container_id: str=None, real_time_log_path: str=None, has_warnings: bool=None, composite_node_id: str=None, **kwargs) -> None:
        super(GraphNodeStatusInfo, self).__init__(**kwargs)
        self.status = status
        self.run_status = run_status
        self.aether_start_time = aether_start_time
        self.aether_end_time = aether_end_time
        self.aether_creation_time = aether_creation_time
        self.run_history_start_time = run_history_start_time
        self.run_history_end_time = run_history_end_time
        self.run_history_creation_time = run_history_creation_time
        self.reuse_info = reuse_info
        self.status_code = status_code
        self.status_detail = status_detail
        self.creation_time = creation_time
        self.schedule_time = schedule_time
        self.start_time = start_time
        self.end_time = end_time
        self.request_id = request_id
        self.run_id = run_id
        self.data_container_id = data_container_id
        self.real_time_log_path = real_time_log_path
        self.has_warnings = has_warnings
        self.composite_node_id = composite_node_id
