InputPortBinding Class  
Defines a binding from a source to an input of a pipeline step.
An InputPortBinding can be used as an input to a step. The source can be a PipelineData, PortDataReference, DataReference, PipelineDataset, or OutputPortBinding.
InputPortBinding is useful to specify the name of the step input, if it should be different than the name of the bind object (i.e. to avoid duplicate input/output names or because the step script needs an input to have a certain name). It can also be used to specify the bind_mode for PythonScriptStep inputs.
Initialize InputPortBinding.
Constructor
InputPortBinding(name, bind_object=None, bind_mode='mount', path_on_compute=None, overwrite=None, is_resource=False, additional_transformations=None, **kwargs)
		Parameters
| Name | Description | 
|---|---|
| 
		 name 
			
				Required
			 
	 | 
	
		
		 Name of the input port to bind, which can contain only letters, digits, and underscores.  | 
| 
		 bind_object 
	 | 
	
		
		 The object to bind to the input port. Default value: None 
			 | 
| 
		 bind_mode 
	 | 
	
		
		 Specifies whether the consuming step will use "download" or "mount" method to access the data. Default value: mount 
			 | 
| 
		 path_on_compute 
	 | 
	
		
		 For "download" mode, the local path the step will read the data from. Default value: None 
			 | 
| 
		 overwrite 
	 | 
	
		
		 For "download" mode, indicate whether to overwrite existing data. Default value: None 
			 | 
| 
		 is_resource 
	 | 
	
		
		 Indicated whether input is a resource. Resources are downloaded to the script folder and provide a way to change the behavior of script at run-time. Default value: False 
			 | 
| 
		 additional_transformations 
	 | 
	
		 
				<xref:azureml.dataprep.Dataflow>
		 
		Additional transformations to apply to the input. This will only be applied if the output of the previous step is an Azure Machine Learning Dataset. Default value: None 
			 | 
| 
		 name 
			
				Required
			 
	 | 
	
		
		 Name of the input port to bind, which can contain only letters, digits, and underscores.  | 
| 
		 bind_object 
			
				Required
			 
	 | 
	
		
		 The object to bind to the input port.  | 
| 
		 bind_mode 
			
				Required
			 
	 | 
	
		
		 Specifies whether the consuming step will use "download" or "mount" or "direct" method to access the data.  | 
| 
		 path_on_compute 
			
				Required
			 
	 | 
	
		
		 For "download" mode, the local path the step will read the data from.  | 
| 
		 overwrite 
			
				Required
			 
	 | 
	
		
		 For "download" mode, indicate whether to overwrite existing data.  | 
| 
		 is_resource 
			
				Required
			 
	 | 
	
		
		 Indicate whether input is a resource. Resources are downloaded to the script folder and provide a way to change the behavior of script at run-time.  | 
| 
		 additional_transformations 
			
				Required
			 
	 | 
	
		 
				<xref:azureml.dataprep.Dataflow>
		 
		Additional transformations to apply to the input. This will only be applied if the output of the previous step is an Azure Machine Learning Dataset.  | 
Remarks
InputPortBinding is used to specify data dependencies in a Pipeline, it represents an input which a step requires for execution. InputPortBindings have a source, called bind_object, which specifies how the input data is produced.
PipelineData and OutputPortBinding can be used as the bind_object for an InputPortBinding to specify that the input to the step will be produced by another step in the Pipeline.
An example to build a Pipeline using InputPortBinding and PipelineData is as follows:
   from azureml.pipeline.core import PipelineData, InputPortBinding, Pipeline
   from azureml.pipeline.steps import PythonScriptStep
   step_1_output = PipelineData("output", datastore=datastore, output_mode="mount")
   step_1 = PythonScriptStep(
       name='prepare data',
       script_name="prepare_data.py",
       compute_target=compute,
       arguments=["--output", step_1_output],
       outputs=[step_1_output]
   )
   step_2_input = InputPortBinding("input", bind_object=step_1_output)
   step_2 = PythonScriptStep(
       name='train',
       script_name="train.py",
       compute_target=compute,
       arguments=["--input", step_2_input],
       inputs=[step_2_input]
   )
   pipeline = Pipeline(workspace=workspace, steps=[step_1, step_2])
In this example the "train" step requires the output of the "prepare data" step as an input.
PortDataReference, DataReference, or PipelineDataset can be used as the bind_object for an InputPortBinding to specify that the input to the step already exists at a specified location.
An example to build a Pipeline using InputPortBinding and DataReference is as follows:
   from azureml.data.data_reference import DataReference
   from azureml.pipeline.core import InputPortBinding, Pipeline
   from azureml.pipeline.steps import PythonScriptStep
   data_reference = DataReference(datastore=datastore, path_on_datastore='sample_data.txt', mode="mount")
   step_1_input = InputPortBinding("input", bind_object=data_reference)
   step_1 = PythonScriptStep(
       name='train',
       script_name="train.py",
       compute_target=compute,
       arguments=["--input", step_1_input],
       inputs=[step_1_input]
   )
   pipeline = Pipeline(workspace=workspace, steps=[step_1])
In this example the "train" step requires the "sample_data.txt" file specified by the DataReference as an input.
Methods
| as_resource | 
					 Get a duplicate input port binding which can be used as a resource.  | 
			
| get_bind_object_data_type | 
					 Get the data type of the bind object.  | 
			
| get_bind_object_name | 
					 Get the name of the bind object.  | 
			
as_resource
Get a duplicate input port binding which can be used as a resource.
as_resource()
Returns
| Type | Description | 
|---|---|
| 
					 InputPortBinding with is_resource property set a True.  | 
		
get_bind_object_data_type
Get the data type of the bind object.
get_bind_object_data_type()
Returns
| Type | Description | 
|---|---|
| 
					 The data type name.  | 
		
get_bind_object_name
Get the name of the bind object.
get_bind_object_name()
Returns
| Type | Description | 
|---|---|
| 
					 The bind object name.  | 
		
Attributes
additional_transformations
Get the additional transformations to apply to the input data.
Returns
| Type | Description | 
|---|---|
| 
						 
							<xref:azureml.dataprep.Dataflow>
						 
			 | 
			
					 The additional transformations to apply to the input data.  | 
		
bind_mode
Get the mode ("download" or "mount" or "direct", "hdfs") the consuming step will use to access the data.
Returns
| Type | Description | 
|---|---|
| 
					 The bind mode ("download" or "mount" or "direct" or "hdfs").  | 
		
bind_object
Get the object the InputPort will be bound to.
Returns
| Type | Description | 
|---|---|
| 
					 The bind object.  | 
		
data_reference_name
Get the name of the data reference associated with the InputPortBinding.
Returns
| Type | Description | 
|---|---|
| 
					 The data reference name.  | 
		
data_type
is_resource
name
overwrite
For "download" mode, indicate whether to overwrite existing data.
Returns
| Type | Description | 
|---|---|
| 
					 The overwrite property.  | 
		
path_on_compute
Get the local path the step will read the data from.
Returns
| Type | Description | 
|---|---|
| 
					 The path on compute.  |