class_docstr: Metaclass for ResolverOp.
  
  Features:
  1. ResolverOp cannot be instantiated directly. Calling ResolverOp() returns
     OpNode instance which is used for function tracing. Instead _ResolverOpMeta
     exposes create() classmethod to actually create a ResolverOp isntance.
  2. _ResolverOpMeta is aware of Property, and keyword argument values
     given from the ResolverOp invocation is validated without creating a
     ResolverOp instance.
  3. It inherits ABCMeta, so @abstractmethod works.
class_docstr_tok: ["Metaclass","for","ResolverOp",".","Features",":","1",".","ResolverOp","can","not","be","instantiated","directly",".","Calling","ResolverOp","(",")","returns","OpNode","instance","which","is","used","for","function","tracing",".","Instead","_ResolverOpMeta","exposes","create","(",")","classmethod","to","actually","create","a","ResolverOp","isntance",".","2",".","_ResolverOpMeta","is","aware","of","Property",",","and","keyword","argument","values","given","from","the","ResolverOp","invocation","is","validated","without","creating","a","ResolverOp","instance",".","3",".","It","inherits","ABCMeta",",","so","@","abstractmethod","works","."]
docstr: Actually create a ResolverOp instance.
  
  Note: Normal class call (e.g. MyResolver()) does not create a MyResolver
  instance but an OpNode(op_type=MyResolver). This classmethod is a hidden
  way of creating an actual MyResolver instance.
  
  Args:
    **props: Property values for the ResolverOp.
  Returns:
    A ResolverOp instance.
code: def create(cls, **props: Any) -> "ResolverOp":
      """Actually create a ResolverOp instance.
  
      Note: Normal class call (e.g. MyResolver()) does not create a MyResolver
      instance but an OpNode(op_type=MyResolver). This classmethod is a hidden
      way of creating an actual MyResolver instance.
  
      Args:
        **props: Property values for the ResolverOp.
      Returns:
        A ResolverOp instance.
      """
      real_instance = super().__call__()
      cls._check_kwargs(props)
      for name, value in props.items():
          setattr(real_instance, name, value)
      return real_instance
  
imports: from __future__ import annotations
  import abc
  from typing import Any, Generic, Literal, Mapping, Optional, Sequence, Set, Type, TypeVar, Union
  import attr
  from tfx import types
  from tfx.proto.orchestration import pipeline_pb2
  from tfx.utils import json_utils
  from tfx.utils import typing_utils
  import ml_metadata
label_desc: Use image node_id 9 for calling the _ResolverOpMeta obj's underlying member method code with example usage: obj.create(cls) and returns: real_instance