# 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, **kwargs):
        super(StructuredInterfaceOutput, self).__init__(**kwargs)
        self.name = kwargs.get('name', None)
        self.label = kwargs.get('label', None)
        self.data_type_id = kwargs.get('data_type_id', None)
        self.pass_through_data_type_input_name = kwargs.get('pass_through_data_type_input_name', None)
        self.description = kwargs.get('description', None)
        self.skip_processing = kwargs.get('skip_processing', None)
        self.data_store_name = kwargs.get('data_store_name', None)
        self.data_store_mode = kwargs.get('data_store_mode', None)
        self.path_on_compute = kwargs.get('path_on_compute', None)
        self.overwrite = kwargs.get('overwrite', None)
        self.data_reference_name = kwargs.get('data_reference_name', None)
        self.training_output = kwargs.get('training_output', None)
        self.dataset_output = kwargs.get('dataset_output', None)
