class_docstr: Properties for use in workflow expressions.
docstr: Create a Properties instance representing the given shape.
  
  Args:
      step_name (str): The name of the Step this Property belongs to.
      path (str): The relative path of this Property value.
      shape_name (str): The botocore service model shape name.
      shape_names (str): A List of the botocore service model shape name.
      step (Step): The Step object this Property belongs to.
docstr_tok: ["Create","a","Properties","instance","representing","the","given","shape",".","Args",":","step_name","(","str",")",":","The","name","of","the","Step","this","Property","belongs","to",".","path","(","str",")",":","The","relative","path","of","this","Property","value",".","shape_name","(","str",")",":","The","botocore","service","model","shape","name",".","shape_names","(","str",")",":","A","List","of","the","botocore","service","model","shape","name",".","step","(","Step",")",":","The","Step","object","this","Property","belongs","to","."]
code: def __init__(
      self,
      step_name: str,
      path: str = None,
      shape_name: str = None,
      shape_names: List[str] = None,
      service_name: str = "sagemaker",
      step: "Step" = None,
  ):
      """Create a Properties instance representing the given shape.
  
      Args:
          step_name (str): The name of the Step this Property belongs to.
          path (str): The relative path of this Property value.
          shape_name (str): The botocore service model shape name.
          shape_names (str): A List of the botocore service model shape name.
          step (Step): The Step object this Property belongs to.
      """
      super().__init__(step)
      self.step_name = step_name
      self.path = path
  
      shape_names = [] if shape_names is None else shape_names
      self._shape_names = (
          shape_names
          if shape_name is None
          else [shape_name] + shape_names
      )
  
      shapes = Properties._shapes_map.get(service_name, {})
  
      for name in self._shape_names:
          shape = shapes.get(name, {})
          shape_type = shape.get("type")
          if shape_type in Properties._primitive_types:
              self.__str__ = name
          elif shape_type == "structure":
              members = shape["members"]
              for key, info in members.items():
                  if (
                      shapes.get(info["shape"], {}).get("type")
                      == "list"
                  ):
                      self.__dict__[key] = PropertiesList(
                          step_name=step_name,
                          path=".".join(filter(None, (path, key))),
                          shape_name=info["shape"],
                          service_name=service_name,
                          step=self._step,
                      )
                  elif (
                      shapes.get(info["shape"], {}).get("type") == "map"
                  ):
                      self.__dict__[key] = PropertiesMap(
                          step_name=step_name,
                          path=".".join(filter(None, (path, key))),
                          shape_name=info["shape"],
                          service_name=service_name,
                          step=self._step,
                      )
                  else:
                      self.__dict__[key] = Properties(
                          step_name=step_name,
                          path=".".join(filter(None, (path, key))),
                          shape_name=info["shape"],
                          service_name=service_name,
                          step=self._step,
                      )
  
imports: from __future__ import absolute_import
  from abc import ABCMeta
  from typing import Dict, Union, List, TYPE_CHECKING
  import attr
  import botocore.loaders
  from sagemaker.workflow.entities import Expression
  from sagemaker.workflow.step_outputs import StepOutput
label_desc: Use image node_id 1 to create a new Properties object from inherited base classes: StepOutput with example: obj = Properties(step_name, path, shape_name, shape_names, service_name, step)