class_docstr: Artifact Placeholder represents an input or an output artifact.
  
  Prefer to use ph.input(...) or ph.output(...) to create instances.
class_docstr_tok: ["Artifact","Placeholder","represents","an","input","or","an","output","artifact",".","Prefer","to","use","ph.input","(","...",")","or","ph.output","(","...",")","to","create","instances","."]
code: def custom_property(self, key: str) -> _PropertyOperator:
      return _PropertyOperator(self, key, is_custom_property=True)
  
imports: from __future__ import annotations
  from typing import Any, Optional, Type
  from tfx.dsl.placeholder import placeholder_base
  from tfx.proto.orchestration import placeholder_pb2
label_desc: Use image node_id 10 for calling the ArtifactPlaceholder obj's underlying member method code with example usage: obj.custom_property(key) and returns: _PropertyOperator