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

    :param graph_draft_id:
    :type graph_draft_id: str
    :param latest_pipeline_run_id:
    :type latest_pipeline_run_id: str
    :param latest_run_experiment_name:
    :type latest_run_experiment_name: str
    :param latest_run_experiment_id:
    :type latest_run_experiment_id: str
    :param is_latest_run_experiment_archived:
    :type is_latest_run_experiment_archived: bool
    :param status:
    :type status: ~designer.models.PipelineStatus
    :param graph_detail:
    :type graph_detail: ~designer.models.PipelineRunGraphDetail
    :param real_time_endpoint_info:
    :type real_time_endpoint_info: ~designer.models.RealTimeEndpointInfo
    :param linked_pipelines_info:
    :type linked_pipelines_info: list[~designer.models.LinkedPipelineInfo]
    :param nodes_in_draft:
    :type nodes_in_draft: list[str]
    :param studio_migration_info:
    :type studio_migration_info: ~designer.models.StudioMigrationInfo
    :param name:
    :type name: str
    :param last_edited_by:
    :type last_edited_by: str
    :param created_by:
    :type created_by: str
    :param description:
    :type description: str
    :param pipeline_type: Possible values include: 'TrainingPipeline',
     'RealTimeInferencePipeline', 'BatchInferencePipeline', 'Unknown'
    :type pipeline_type: str or ~designer.models.PipelineType
    :param pipeline_draft_mode: Possible values include: 'None', 'Normal',
     'Custom'
    :type pipeline_draft_mode: str or ~designer.models.PipelineDraftMode
    :param tags: This is a dictionary
    :type tags: dict[str, str]
    :param properties: This is a dictionary
    :type properties: dict[str, str]
    :param entity_status: Possible values include: 'Active', 'Deprecated',
     'Disabled'
    :type entity_status: str or ~designer.models.EntityStatus
    :param id:
    :type id: str
    :param etag:
    :type etag: str
    :param created_date:
    :type created_date: datetime
    :param last_modified_date:
    :type last_modified_date: datetime
    """

    _attribute_map = {
        'graph_draft_id': {'key': 'graphDraftId', 'type': 'str'},
        'latest_pipeline_run_id': {'key': 'latestPipelineRunId', 'type': 'str'},
        'latest_run_experiment_name': {'key': 'latestRunExperimentName', 'type': 'str'},
        'latest_run_experiment_id': {'key': 'latestRunExperimentId', 'type': 'str'},
        'is_latest_run_experiment_archived': {'key': 'isLatestRunExperimentArchived', 'type': 'bool'},
        'status': {'key': 'status', 'type': 'PipelineStatus'},
        'graph_detail': {'key': 'graphDetail', 'type': 'PipelineRunGraphDetail'},
        'real_time_endpoint_info': {'key': 'realTimeEndpointInfo', 'type': 'RealTimeEndpointInfo'},
        'linked_pipelines_info': {'key': 'linkedPipelinesInfo', 'type': '[LinkedPipelineInfo]'},
        'nodes_in_draft': {'key': 'nodesInDraft', 'type': '[str]'},
        'studio_migration_info': {'key': 'studioMigrationInfo', 'type': 'StudioMigrationInfo'},
        'name': {'key': 'name', 'type': 'str'},
        'last_edited_by': {'key': 'lastEditedBy', 'type': 'str'},
        'created_by': {'key': 'createdBy', 'type': 'str'},
        'description': {'key': 'description', 'type': 'str'},
        'pipeline_type': {'key': 'pipelineType', 'type': 'str'},
        'pipeline_draft_mode': {'key': 'pipelineDraftMode', 'type': 'str'},
        'tags': {'key': 'tags', 'type': '{str}'},
        'properties': {'key': 'properties', 'type': '{str}'},
        'entity_status': {'key': 'entityStatus', 'type': 'str'},
        'id': {'key': 'id', 'type': 'str'},
        'etag': {'key': 'etag', 'type': 'str'},
        'created_date': {'key': 'createdDate', 'type': 'iso-8601'},
        'last_modified_date': {'key': 'lastModifiedDate', 'type': 'iso-8601'},
    }

    def __init__(self, *, graph_draft_id: str=None, latest_pipeline_run_id: str=None, latest_run_experiment_name: str=None, latest_run_experiment_id: str=None, is_latest_run_experiment_archived: bool=None, status=None, graph_detail=None, real_time_endpoint_info=None, linked_pipelines_info=None, nodes_in_draft=None, studio_migration_info=None, name: str=None, last_edited_by: str=None, created_by: str=None, description: str=None, pipeline_type=None, pipeline_draft_mode=None, tags=None, properties=None, entity_status=None, id: str=None, etag: str=None, created_date=None, last_modified_date=None, **kwargs) -> None:
        super(PipelineDraft, self).__init__(**kwargs)
        self.graph_draft_id = graph_draft_id
        self.latest_pipeline_run_id = latest_pipeline_run_id
        self.latest_run_experiment_name = latest_run_experiment_name
        self.latest_run_experiment_id = latest_run_experiment_id
        self.is_latest_run_experiment_archived = is_latest_run_experiment_archived
        self.status = status
        self.graph_detail = graph_detail
        self.real_time_endpoint_info = real_time_endpoint_info
        self.linked_pipelines_info = linked_pipelines_info
        self.nodes_in_draft = nodes_in_draft
        self.studio_migration_info = studio_migration_info
        self.name = name
        self.last_edited_by = last_edited_by
        self.created_by = created_by
        self.description = description
        self.pipeline_type = pipeline_type
        self.pipeline_draft_mode = pipeline_draft_mode
        self.tags = tags
        self.properties = properties
        self.entity_status = entity_status
        self.id = id
        self.etag = etag
        self.created_date = created_date
        self.last_modified_date = last_modified_date
