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

    :param run_id:
    :type run_id: str
    :param target:
    :type target: str
    :param status: Possible values include: 'NotStarted', 'Starting',
     'Provisioning', 'Preparing', 'Queued', 'Running', 'Finalizing',
     'CancelRequested', 'Completed', 'Failed', 'Canceled', 'NotResponding'
    :type status: str or ~designer.models.RunStatus
    :param status_detail:
    :type status_detail: str
    :param parent_run_id:
    :type parent_run_id: str
    :param start_time:
    :type start_time: datetime
    :param end_time:
    :type end_time: datetime
    :param is_reused:
    :type is_reused: bool
    :param logs: This is a dictionary
    :type logs: dict[str, str]
    :param output_log:
    :type output_log: str
    :param outputs: This is a dictionary
    :type outputs: dict[str, str]
    :param port_outputs: This is a dictionary
    :type port_outputs: dict[str, ~designer.models.PortOutputInfo]
    :param is_experiment_archived:
    :type is_experiment_archived: bool
    """

    _attribute_map = {
        'run_id': {'key': 'runId', 'type': 'str'},
        'target': {'key': 'target', 'type': 'str'},
        'status': {'key': 'status', 'type': 'str'},
        'status_detail': {'key': 'statusDetail', 'type': 'str'},
        'parent_run_id': {'key': 'parentRunId', 'type': 'str'},
        'start_time': {'key': 'startTime', 'type': 'iso-8601'},
        'end_time': {'key': 'endTime', 'type': 'iso-8601'},
        'is_reused': {'key': 'isReused', 'type': 'bool'},
        'logs': {'key': 'logs', 'type': '{str}'},
        'output_log': {'key': 'outputLog', 'type': 'str'},
        'outputs': {'key': 'outputs', 'type': '{str}'},
        'port_outputs': {'key': 'portOutputs', 'type': '{PortOutputInfo}'},
        'is_experiment_archived': {'key': 'isExperimentArchived', 'type': 'bool'},
    }

    def __init__(self, *, run_id: str=None, target: str=None, status=None, status_detail: str=None, parent_run_id: str=None, start_time=None, end_time=None, is_reused: bool=None, logs=None, output_log: str=None, outputs=None, port_outputs=None, is_experiment_archived: bool=None, **kwargs) -> None:
        super(PipelineDraftStepDetails, self).__init__(**kwargs)
        self.run_id = run_id
        self.target = target
        self.status = status
        self.status_detail = status_detail
        self.parent_run_id = parent_run_id
        self.start_time = start_time
        self.end_time = end_time
        self.is_reused = is_reused
        self.logs = logs
        self.output_log = output_log
        self.outputs = outputs
        self.port_outputs = port_outputs
        self.is_experiment_archived = is_experiment_archived
