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

    :param use_pipeline_endpoint:
    :type use_pipeline_endpoint: bool
    :param pipeline_name:
    :type pipeline_name: str
    :param pipeline_description:
    :type pipeline_description: str
    :param use_existing_pipeline_endpoint:
    :type use_existing_pipeline_endpoint: bool
    :param pipeline_endpoint_name:
    :type pipeline_endpoint_name: str
    :param pipeline_endpoint_description:
    :type pipeline_endpoint_description: str
    :param set_as_default_pipeline_for_endpoint:
    :type set_as_default_pipeline_for_endpoint: bool
    :param graph:
    :type graph: ~designer.models.GraphDraftEntity
    :param module_node_run_settings:
    :type module_node_run_settings:
     list[~designer.models.GraphModuleNodeRunSetting]
    :param tags: This is a dictionary
    :type tags: dict[str, str]
    :param step_tags: This is a dictionary
    :type step_tags: dict[str, str]
    :param continue_run_on_step_failure:
    :type continue_run_on_step_failure: bool
    :param experiment_name:
    :type experiment_name: str
    :param description:
    :type description: str
    :param pipeline_parameters: This is a dictionary
    :type pipeline_parameters: dict[str, str]
    :param data_path_assignments: This is a dictionary
    :type data_path_assignments: dict[str, ~designer.models.LegacyDataPath]
    :param data_set_definition_value_assignments: This is a dictionary
    :type data_set_definition_value_assignments: dict[str,
     ~designer.models.DataSetDefinitionValue]
    :param properties: This is a dictionary
    :type properties: dict[str, str]
    :param enable_notification:
    :type enable_notification: bool
    :param sub_pipelines_info:
    :type sub_pipelines_info: ~designer.models.SubPipelinesInfo
    """

    _attribute_map = {
        'use_pipeline_endpoint': {'key': 'usePipelineEndpoint', 'type': 'bool'},
        'pipeline_name': {'key': 'pipelineName', 'type': 'str'},
        'pipeline_description': {'key': 'pipelineDescription', 'type': 'str'},
        'use_existing_pipeline_endpoint': {'key': 'useExistingPipelineEndpoint', 'type': 'bool'},
        'pipeline_endpoint_name': {'key': 'pipelineEndpointName', 'type': 'str'},
        'pipeline_endpoint_description': {'key': 'pipelineEndpointDescription', 'type': 'str'},
        'set_as_default_pipeline_for_endpoint': {'key': 'setAsDefaultPipelineForEndpoint', 'type': 'bool'},
        'graph': {'key': 'graph', 'type': 'GraphDraftEntity'},
        'module_node_run_settings': {'key': 'moduleNodeRunSettings', 'type': '[GraphModuleNodeRunSetting]'},
        'tags': {'key': 'tags', 'type': '{str}'},
        'step_tags': {'key': 'stepTags', 'type': '{str}'},
        'continue_run_on_step_failure': {'key': 'continueRunOnStepFailure', 'type': 'bool'},
        'experiment_name': {'key': 'experimentName', 'type': 'str'},
        'description': {'key': 'description', 'type': 'str'},
        'pipeline_parameters': {'key': 'pipelineParameters', 'type': '{str}'},
        'data_path_assignments': {'key': 'dataPathAssignments', 'type': '{LegacyDataPath}'},
        'data_set_definition_value_assignments': {'key': 'dataSetDefinitionValueAssignments', 'type': '{DataSetDefinitionValue}'},
        'properties': {'key': 'properties', 'type': '{str}'},
        'enable_notification': {'key': 'enableNotification', 'type': 'bool'},
        'sub_pipelines_info': {'key': 'subPipelinesInfo', 'type': 'SubPipelinesInfo'},
    }

    def __init__(self, **kwargs):
        super(CreatePublishedPipelineRequest, self).__init__(**kwargs)
        self.use_pipeline_endpoint = kwargs.get('use_pipeline_endpoint', None)
        self.pipeline_name = kwargs.get('pipeline_name', None)
        self.pipeline_description = kwargs.get('pipeline_description', None)
        self.use_existing_pipeline_endpoint = kwargs.get('use_existing_pipeline_endpoint', None)
        self.pipeline_endpoint_name = kwargs.get('pipeline_endpoint_name', None)
        self.pipeline_endpoint_description = kwargs.get('pipeline_endpoint_description', None)
        self.set_as_default_pipeline_for_endpoint = kwargs.get('set_as_default_pipeline_for_endpoint', None)
        self.graph = kwargs.get('graph', None)
        self.module_node_run_settings = kwargs.get('module_node_run_settings', None)
        self.tags = kwargs.get('tags', None)
        self.step_tags = kwargs.get('step_tags', None)
        self.continue_run_on_step_failure = kwargs.get('continue_run_on_step_failure', None)
        self.experiment_name = kwargs.get('experiment_name', None)
        self.description = kwargs.get('description', None)
        self.pipeline_parameters = kwargs.get('pipeline_parameters', None)
        self.data_path_assignments = kwargs.get('data_path_assignments', None)
        self.data_set_definition_value_assignments = kwargs.get('data_set_definition_value_assignments', None)
        self.properties = kwargs.get('properties', None)
        self.enable_notification = kwargs.get('enable_notification', None)
        self.sub_pipelines_info = kwargs.get('sub_pipelines_info', None)
