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

    :param module_nodes:
    :type module_nodes: list[~designer.models.GraphModuleNode]
    :param dataset_nodes:
    :type dataset_nodes: list[~designer.models.GraphDatasetNode]
    :param edges:
    :type edges: list[~designer.models.GraphEdge]
    :param entity_interface:
    :type entity_interface: ~designer.models.EntityInterface
    :param graph_layout:
    :type graph_layout: ~designer.models.GraphLayout
    :param created_by:
    :type created_by: ~designer.models.CreatedBy
    :param last_updated_by:
    :type last_updated_by: ~designer.models.CreatedBy
    :param default_compute:
    :type default_compute: ~designer.models.ComputeSetting
    :param default_datastore:
    :type default_datastore: ~designer.models.DatastoreSetting
    :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 = {
        'module_nodes': {'key': 'moduleNodes', 'type': '[GraphModuleNode]'},
        'dataset_nodes': {'key': 'datasetNodes', 'type': '[GraphDatasetNode]'},
        'edges': {'key': 'edges', 'type': '[GraphEdge]'},
        'entity_interface': {'key': 'entityInterface', 'type': 'EntityInterface'},
        'graph_layout': {'key': 'graphLayout', 'type': 'GraphLayout'},
        'created_by': {'key': 'createdBy', 'type': 'CreatedBy'},
        'last_updated_by': {'key': 'lastUpdatedBy', 'type': 'CreatedBy'},
        'default_compute': {'key': 'defaultCompute', 'type': 'ComputeSetting'},
        'default_datastore': {'key': 'defaultDatastore', 'type': 'DatastoreSetting'},
        '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, **kwargs):
        super(GraphDraftEntity, self).__init__(**kwargs)
        self.module_nodes = kwargs.get('module_nodes', None)
        self.dataset_nodes = kwargs.get('dataset_nodes', None)
        self.edges = kwargs.get('edges', None)
        self.entity_interface = kwargs.get('entity_interface', None)
        self.graph_layout = kwargs.get('graph_layout', None)
        self.created_by = kwargs.get('created_by', None)
        self.last_updated_by = kwargs.get('last_updated_by', None)
        self.default_compute = kwargs.get('default_compute', None)
        self.default_datastore = kwargs.get('default_datastore', None)
        self.id = kwargs.get('id', None)
        self.etag = kwargs.get('etag', None)
        self.created_date = kwargs.get('created_date', None)
        self.last_modified_date = kwargs.get('last_modified_date', None)
