class_docstr: PropertiesList for use in workflow expressions.
docstr: Populate the indexing item with a Property, for both lists and dictionaries.
  
  Args:
      item (Union[int, str]): The index of the item in sequence.
docstr_tok: ["Populate","the","indexing","item","with","a","Property",",","for","both","lists","and","dictionaries",".","Args",":","item","(","Union","[","int",",","str","]",")",":","The","index","of","the","item","in","sequence","."]
code: def __getitem__(self, item: Union[int, str]):
      """Populate the indexing item with a Property, for both lists and dictionaries.
  
      Args:
          item (Union[int, str]): The index of the item in sequence.
      """
      if item not in self._items.keys():
          shape = Properties._shapes_map.get(self.service_name, {}).get(
              self.shape_name
          )
          member = shape["member"]["shape"]
          if isinstance(item, str):
              property_item = Properties(
                  self.step_name,
                  f"{self.path}['{item}']",
                  member,
                  step=self._step,
              )
          else:
              property_item = Properties(
                  self.step_name,
                  f"{self.path}[{item}]",
                  member,
                  step=self._step,
              )
          self._items[item] = property_item
  
      return self._items.get(item)
  
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 2 for calling the PropertiesList obj's underlying member method code with example usage: obj.__getitem__(item) and returns: self