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

    :param name:
    :type name: str
    :param label:
    :type label: str
    :param data_type_id:
    :type data_type_id: str
    :param pass_through_data_type_input_name:
    :type pass_through_data_type_input_name: str
    :param description:
    :type description: str
    :param skip_processing:
    :type skip_processing: bool
    :param data_store_name:
    :type data_store_name: str
    :param data_store_mode: Possible values include: 'None', 'Mount',
     'Download', 'Upload', 'Direct', 'Hdfs'
    :type data_store_mode: str or ~designer.models.DataStoreMode
    :param path_on_compute:
    :type path_on_compute: str
    :param overwrite:
    :type overwrite: bool
    :param data_reference_name:
    :type data_reference_name: str
    :param training_output:
    :type training_output: ~designer.models.TrainingOutput
    :param dataset_output:
    :type dataset_output: ~designer.models.DatasetOutput
    """

    _attribute_map = {
        'name': {'key': 'name', 'type': 'str'},
        'label': {'key': 'label', 'type': 'str'},
        'data_type_id': {'key': 'dataTypeId', 'type': 'str'},
        'pass_through_data_type_input_name': {'key': 'passThroughDataTypeInputName', 'type': 'str'},
        'description': {'key': 'description', 'type': 'str'},
        'skip_processing': {'key': 'skipProcessing', 'type': 'bool'},
        'data_store_name': {'key': 'dataStoreName', 'type': 'str'},
        'data_store_mode': {'key': 'dataStoreMode', 'type': 'str'},
        'path_on_compute': {'key': 'pathOnCompute', 'type': 'str'},
        'overwrite': {'key': 'overwrite', 'type': 'bool'},
        'data_reference_name': {'key': 'dataReferenceName', 'type': 'str'},
        'training_output': {'key': 'trainingOutput', 'type': 'TrainingOutput'},
        'dataset_output': {'key': 'datasetOutput', 'type': 'DatasetOutput'},
    }

    def __init__(self, *, name: str=None, label: str=None, data_type_id: str=None, pass_through_data_type_input_name: str=None, description: str=None, skip_processing: bool=None, data_store_name: str=None, data_store_mode=None, path_on_compute: str=None, overwrite: bool=None, data_reference_name: str=None, training_output=None, dataset_output=None, **kwargs) -> None:
        super(StructuredInterfaceOutput, self).__init__(**kwargs)
        self.name = name
        self.label = label
        self.data_type_id = data_type_id
        self.pass_through_data_type_input_name = pass_through_data_type_input_name
        self.description = description
        self.skip_processing = skip_processing
        self.data_store_name = data_store_name
        self.data_store_mode = data_store_mode
        self.path_on_compute = path_on_compute
        self.overwrite = overwrite
        self.data_reference_name = data_reference_name
        self.training_output = training_output
        self.dataset_output = dataset_output
