code: def exec_property(key: str) -> ExecPropertyPlaceholder:
      """Returns a Placeholder that represents an execution property.
  
      Args:
        key: The key of the output artifact.
  
      Returns:
        A Placeholder that supports
          1. Rendering the value of an execution property at a given key.
             Example: exec_property('version')
          2. Rendering the whole proto or a proto field of an execution property,
             if the value is a proto type.
             The (possibly nested) proto field in a placeholder can be accessed as
             if accessing a proto field in Python.
             Example: exec_property('model_config').num_layers
          3. Concatenating with other placeholders or strings.
             Example: output('model').uri + '/model/' + exec_property('version')
      """
      return ExecPropertyPlaceholder(key)
  
imports: from __future__ import annotations
  import typing
  from typing import Any, Literal, Optional, Union
  from tfx.dsl.placeholder import placeholder_base
  from tfx.proto.orchestration import placeholder_pb2
  from google.protobuf import message
label_desc: Use image node_id 1 for calling a global function with example usage: exec_property(key) and returns: ExecPropertyPlaceholder