class_docstr: DownstreamComponent is an experimental component.
  
  Component parameters include a dynamic execution prop to take upstream output.
class_docstr_tok: ["DownstreamComponent","is","an","experimental","component",".","Component","parameters","include","a","dynamic","execution","prop","to","take","upstream","output","."]
code: def __init__(
      self,
      input_num: Optional[Union[int, ph.Placeholder]] = None,
      input_str: Optional[Union[str, ph.Placeholder]] = None,
  ):
      spec = DownStreamSpec(input_num=input_num, input_str=input_str)
      super().__init__(spec=spec)
  
imports: import os
  from typing import Any, Dict, Optional
  from typing import List, Union
  from tfx import types
  from tfx.dsl.component.experimental.annotations import OutputArtifact
  from tfx.dsl.component.experimental.annotations import Parameter
  from tfx.dsl.component.experimental.decorators import component
  from tfx.dsl.components.base import base_component
  from tfx.dsl.components.base import base_executor
  from tfx.dsl.components.base import base_node
  from tfx.dsl.components.base import executor_spec
  from tfx.dsl.placeholder import placeholder
  from tfx.orchestration import pipeline
  from tfx.types import component_spec
  from tfx.types import standard_artifacts
label_desc: Use image node_id 1 to create a new DownstreamComponent object from inherited base classes: base_component with example: obj = DownstreamComponent(input_num, input_str)