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

    :param name:
    :type name: str
    :param description:
    :type description: str
    :param default_compute_target:
    :type default_compute_target: ~designer.models.ComputeSetting
    :param default_data_store:
    :type default_data_store: ~designer.models.DatastoreSetting
    :param id:
    :type id: str
    :param parent_graph_id:
    :type parent_graph_id: str
    :param pipeline_definition_id:
    :type pipeline_definition_id: str
    :param sub_graph_parameter_assignment:
    :type sub_graph_parameter_assignment:
     list[~designer.models.SubGraphParameterAssignment]
    :param sub_graph_data_path_parameter_assignment:
    :type sub_graph_data_path_parameter_assignment:
     list[~designer.models.SubGraphDataPathParameterAssignment]
    :param sub_graph_default_compute_target_nodes:
    :type sub_graph_default_compute_target_nodes: list[str]
    :param sub_graph_default_data_store_nodes:
    :type sub_graph_default_data_store_nodes: list[str]
    :param inputs:
    :type inputs: list[~designer.models.SubGraphPortInfo]
    :param outputs:
    :type outputs: list[~designer.models.SubGraphPortInfo]
    """

    _attribute_map = {
        'name': {'key': 'name', 'type': 'str'},
        'description': {'key': 'description', 'type': 'str'},
        'default_compute_target': {'key': 'defaultComputeTarget', 'type': 'ComputeSetting'},
        'default_data_store': {'key': 'defaultDataStore', 'type': 'DatastoreSetting'},
        'id': {'key': 'id', 'type': 'str'},
        'parent_graph_id': {'key': 'parentGraphId', 'type': 'str'},
        'pipeline_definition_id': {'key': 'pipelineDefinitionId', 'type': 'str'},
        'sub_graph_parameter_assignment': {'key': 'subGraphParameterAssignment', 'type': '[SubGraphParameterAssignment]'},
        'sub_graph_data_path_parameter_assignment': {'key': 'subGraphDataPathParameterAssignment', 'type': '[SubGraphDataPathParameterAssignment]'},
        'sub_graph_default_compute_target_nodes': {'key': 'subGraphDefaultComputeTargetNodes', 'type': '[str]'},
        'sub_graph_default_data_store_nodes': {'key': 'subGraphDefaultDataStoreNodes', 'type': '[str]'},
        'inputs': {'key': 'inputs', 'type': '[SubGraphPortInfo]'},
        'outputs': {'key': 'outputs', 'type': '[SubGraphPortInfo]'},
    }

    def __init__(self, *, name: str=None, description: str=None, default_compute_target=None, default_data_store=None, id: str=None, parent_graph_id: str=None, pipeline_definition_id: str=None, sub_graph_parameter_assignment=None, sub_graph_data_path_parameter_assignment=None, sub_graph_default_compute_target_nodes=None, sub_graph_default_data_store_nodes=None, inputs=None, outputs=None, **kwargs) -> None:
        super(SubGraphInfo, self).__init__(**kwargs)
        self.name = name
        self.description = description
        self.default_compute_target = default_compute_target
        self.default_data_store = default_data_store
        self.id = id
        self.parent_graph_id = parent_graph_id
        self.pipeline_definition_id = pipeline_definition_id
        self.sub_graph_parameter_assignment = sub_graph_parameter_assignment
        self.sub_graph_data_path_parameter_assignment = sub_graph_data_path_parameter_assignment
        self.sub_graph_default_compute_target_nodes = sub_graph_default_compute_target_nodes
        self.sub_graph_default_data_store_nodes = sub_graph_default_data_store_nodes
        self.inputs = inputs
        self.outputs = outputs
