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

    :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 pipeline_function_name:
    :type pipeline_function_name: str
    :param id:
    :type id: str
    :param parent_definition_id:
    :type parent_definition_id: str
    :param from_module_name:
    :type from_module_name: str
    :param parameter_list:
    :type parameter_list: list[~designer.models.Kwarg]
    """

    _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'},
        'pipeline_function_name': {'key': 'pipelineFunctionName', 'type': 'str'},
        'id': {'key': 'id', 'type': 'str'},
        'parent_definition_id': {'key': 'parentDefinitionId', 'type': 'str'},
        'from_module_name': {'key': 'fromModuleName', 'type': 'str'},
        'parameter_list': {'key': 'parameterList', 'type': '[Kwarg]'},
    }

    def __init__(self, *, name: str=None, description: str=None, default_compute_target=None, default_data_store=None, pipeline_function_name: str=None, id: str=None, parent_definition_id: str=None, from_module_name: str=None, parameter_list=None, **kwargs) -> None:
        super(SubPipelineDefinition, self).__init__(**kwargs)
        self.name = name
        self.description = description
        self.default_compute_target = default_compute_target
        self.default_data_store = default_data_store
        self.pipeline_function_name = pipeline_function_name
        self.id = id
        self.parent_definition_id = parent_definition_id
        self.from_module_name = from_module_name
        self.parameter_list = parameter_list
